2012-03-24 135 views
0

我有一個頁面,如果用戶想要編輯前一個屏幕上的某些文本,用戶可以訪問該頁面。一旦他們完成編輯它被用於驗證的JavaScript提交表單數據,這是形式:通過javascript提交表單

<script type="text/javascript"> 
function validate(F) {  
    var post = F; 
    var title = F; 
    post = post.trim(); 
    title = title.trim(); 
    if(post.length == 0) { 
     alert("This is blank"); 
     return false; 
    } 
    else { 
     if(title.length == 0) { 
      var agree=confirm("Really?"); 
      if (agree) { 
       return true; 
      } 
      else { 
       return false; 
      } 
     } 
     return true; 
    } 
} 

<form id='editpost' action='' method='post' > 
Your Post:<br/> 
<input type='hidden' name='' value='""'> 
Title: <input type='text' name='' value='""'/><br/> 
<textarea name='' cols='100' rows='100'>""</textarea> 
<br/><input type=submit value='Submit' name='' onclick='return validate(document.forms[0]);'><input type=submit value='Cancel' name=''> 
</form> 
} 

我檢查值被在相應的框中使用的JavaScript進入

當表單最終提交時,一些數據會在mysql數據庫中用來自表單的數據更新,並且用戶被重定向到頁面以查看它。我想要做的是通過JavaScript中的post方法提交表單,這是爲了阻止用戶關閉他們的javascript,並有可能將空白bodys輸入到數據庫中。我真的不知道如何做到這一點。

+2

你永遠不應該只依靠客戶端驗證。你也應該執行服務器端驗證! – 2012-03-24 20:03:23

+1

如果他們關閉JavaScript,你的代碼將如何運行? – dldnh 2012-03-24 20:04:06

+0

我要實現這兩個,但這對我來說更難,因爲我以前沒有真正處理過javascript。 – W0lf7 2012-03-24 20:06:07

回答

1

您在頁面上的提交按鈕應該是一個虛擬按鈕,只能調用您的驗證功能。然後提交只是說document.getElementById('editpost')。submit();從你的代碼。 (如果我的記憶失敗了我,你可能會試着提交大寫S提交)

希望這會有所幫助。

編輯:

<form id='editpost' action='editPost.php' method='post' > 
... 
<br/><input type=button value='Submit' name='alterPost' onclick='validateForm(document.forms[0]);'><input type=submit value='Cancel' name='no'> 
</form> 

然後在你的JavaScript,而不是返回一個值

... 
// if it's valid 
F.submit(); 
... 
// if it's not valid 
// show the user a message explaining why 
... 
+0

你能告訴我一個例子嗎?我不確定我明白。 – W0lf7 2012-03-24 20:06:31

+0

@ W0lf7示例添加 – user980058 2012-03-24 20:20:33

+0

謝謝!這是我正在尋找:) – W0lf7 2012-03-24 20:40:04

1

我希望能夠做的就是通過POST方法提交表單javascript,這是爲了阻止用戶關閉他們的javascript,並可能輸入空白

你實際需要的是服務器端(非客戶端/ Javascript)驗證,以防止「無效數據」(但是你定義它)從發送/保存到你的數據庫。

如果客戶端(瀏覽器)上的Javascript被關閉沒有您的Javascript將運行,表單將POST(或GET)到您定義的任何操作(editPost.php)。你需要添加驗證碼/處理到editPost.php