2011-09-07 56 views
1

您好,我需要在完成一些驗證後提交一個頁面。我從來沒有使用jQuery之前,有任何想法如何做到這一點? 腳本來自本教程http://webcloud.se/log/Form-validation-with-jQuery-from-scratch/如何使用jQuery提交頁面

<form method="post" action="/contact-process" id="demo-form"> 

    <script> 
     var demoForm = $("#demo-form"); 
     demoForm.validation(); 
     demoForm.submit(function (e) { 

      $("#valid-form").remove(); 
      if (demoForm.validate()) { 
       demoForm.append("<strong id='valid-form'>Form is valid!</strong>"); 
      // Here submit the page 

      } 
      e.preventDefault(); 
     }); 
    </script> 
+0

document.name_of_the_form.submit –

+0

如果你想要的網頁,只是正常提交​​和確認後,頁面刷新,只是把'e.preventDefault() '在'else'後面''在'if'後面''。 – Orbling

+0

是否帶有「valid-form」標識的元素,「

」? – StuperUser

回答

2

更改處理程序只有在表單無效時才能防止違約:

demoForm.submit(function (e) { 
    $("#valid-form").remove(); 
    if (demoForm.validate()) { 
     demoForm.append("<strong id='valid-form'>Form is valid!</strong>"); 
    } 
    else 
     e.preventDefault(); 
}); 
+0

很多感謝它工作得很好,解決了問題 – GibboK

+0

儘管InvisibleBacon正確回答了您的問題,但它沒有解決關於如何以及在哪裏使用jquery調用的樣式問題。最重要的是,將所有內容都包裝在$(document).ready()中,以便根據尚未完成加載的DOM元素觸發任何內容。另外,如果你想要做的就是停止提交,如果表單無效,那麼你只需要一個if語句,當該值爲false時,不需要if/else。 – Shaggy13spe

0

也許你可以試試:

$("#valid-form").submit(); 

但是......在你的代碼你刪除的形式,所以沒有什麼提交。也許你可以使用hide()而不是remove()。

+0

我得到這個錯誤:行:42 錯誤:對象不支持js的這個屬性或方法源代碼在這裏有什麼想法? http://webcloud.se/log/Form-validation-with-jQuery-from-scratch/jquery.validation.js – GibboK

+0

嗯,當然是因爲你先刪除了表單! –

+0

奇怪的事情,我收到一個錯誤錯誤:對象不支持此屬性或方法,但頁面可以提交後erro在jqery.min.js – GibboK

0

嘗試使用 $("#valid-form").submit();

+0

我試過但我得到一個錯誤: 對象不支持js的這個屬性或方法源代碼這裏有什麼想法嗎? – GibboK

0
$("#valid-form").submit(); 

3

既然你處理表單的submit事件,你只需要調用preventDefault()如果它是無效的:

demoForm.submit(function(e) { 
    $("#valid-form").remove(); 
    if (demoForm.validate()) { 
     demoForm.append("<strong id='valid-form'>Form is valid!</strong>"); 
    } else { 
     e.preventDefault(); 
    } 
} 
0

如果表單有效只是return true否則return false它會停止表單提交。

demoForm.submit(function (e) { 

     $("#valid-form").remove(); 
     if (demoForm.validate()) { 
      demoForm.append("<strong id='valid-form'>Form is valid!</strong>"); 

      return true;    

     } 
     return false; 
    }); 
1

嘗試調整您的腳本代碼,以防止驗證失敗時提交。例如,下面的代碼(因爲你只提供了一個片斷,我剛剛創建了一個基本的頁面,你想要做什麼本質上,你需要有調整你的代碼)

<html> 
<head> 
<title></title> 
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.2.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
     var valid = true; 
     $("form").submit(function (e) { 
      if (!valid) { 
       e.preventDefault(); 
      } 
     });}); 
    </script> 
</head> 
<body> 
<form method="post" action="anotherpage.htm"> 
    <input type="text" value="hello"></input> 
    <input type="submit" value="submit"></input> 
</form> 
</body> 
  1. 調用.preventDefault(方面注意:你也可以返回false)停止實際發生的提交。如果表單有效,則跳過if語句並繼續提交。你應該把你的jQuery代碼放在$(document).ready(function(){})中;因爲在DOM完全加載之前你不需要觸發任何東西。
  2. 一般來說,你應該把你的腳本標籤在HEAD元素