2011-09-07 43 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元素
相关问题