2012-04-25 42 views
2

我正在使用JQuery验证插件来验证我的应用程序中的表单。当按钮是“提交”类型时,它工作正常。但是,我有一种表单,我需要使用JQuery.Ajax提交数据,因此我使用简单的<input type='button'>。但然后验证不会工作。 这里的工作代码 -JQuery验证插件不适用于简单按钮

<head> 
<script> 
$(document).ready(function(){ 
    $("#some_form").validate({}); 
}); 
</script> 
</head> 
<body> 
<form name='some_form' id='some_form'> 
<!-- Form Fields --> 
<input type='submit' value='Submit'> 
</form> 
</body> 

在上面的代码工作,但是,当我把这个代码<input type='button' value='Submit'>,这是行不通的。

有没有人有任何想法如何得到这个工作?

+0

嗨,我认为你需要给**名**和** **号元素提交按钮.. – Chandresh 2012-04-25 07:02:02

+0

是U确定的validate()将要给出的validate( {})... – 2012-04-25 07:02:44

+0

@lakshmipriya是的,我不认为这是问题,因为代码工作正常提交按钮 – skos 2012-04-25 07:04:32

回答

1

AFAIK,jQuery验证插件被设计为仅在提交被触发时才起作用;因此,当您在输入元素上具有类型“按钮”时,表单实际上未提交,因此验证从不运行。是否有一个原因,你不想有'提交'类型?

编辑处理意见:使用AJAX,但仍然有一个“提交”按钮类型,您使用的插件参数的“submitHandler”选项...是这样的:

$("#some_form").validate({ 
     submitHandler: function(form) { 
     ... ajax stuff here ... 
    } 
}); 

这将覆盖实际发布表单,但仍会触发提交事件,以便验证运行。

+0

我想使用Ajax,我不希望页面在数据提交时被刷新 – skos 2012-04-25 07:11:43

1

好吧!我想我找到了答案。所以我在这里发布它以防万一需要它。下面的代码

<head> 
<script src="jquery.js" type="text/javascript"></script> 
<script src="jquery.validate.js" type="text/javascript"></script> 
<script> 
$(document).ready(function(){ 
    $('#button_id').click(function() { 
    if ($("#some_form").validate().form() == true) 
     { 
      // Call Ajax Here 
     } 
    }); 
}); 
</script> 
</head> 
<body> 
<form name='some_form' id='some_form'> 
<!-- Form Fields --> 
<input type='button' id='button_id' value='Submit'> 
</form> 
</body> 
相关问题