0

在验证表单后,我正在尝试使用 ajax 发布表单。但是 .valid 似乎是错误的。

基于按钮需要多种动作类型。

此示例在提交时也未正确显示错误消息

$('#submit').click( function(){
        alert(validator.valid());
    });

$('#submit2').click( function(){
        alert(validator.valid());
        //do something else
    });

如果我输入必填字段(例如姓名),则状态变为真

这是小提琴

4

2 回答 2

0

试试这个小提琴 http://jsfiddle.net/r2HUu/4/

它正在工作。我刚刚检查了表单的验证$("#myForm").valid()

于 2013-06-03T18:11:02.050 回答
-1

引用操作:

“我正在尝试在验证表单后使用 ajax 发布表单”

根据文档,您ajax进入submitHandler回调函数。

submitHandler(默认:原生表单提交)
类型:Function()
表单有效时处理实际提交的回调。获取表单作为唯一参数。替换默认提交。验证后通过 Ajax 提交表单的正确位置。

使用此回调,会自动捕获点击,并且该函数仅在有效表单上触发。

$(function () {

    var validator = $("#myForm").validate({
        // rules and options,
        submitHandler: function(form) {
            // your ajax goes here
            alert("valid form");
            return false;
        }
    });

});

演示:http: //jsfiddle.net/fXDwd/


引用操作:

“不过,这.valid似乎是错误的。”

编辑

根据 OP 的评论和更新的 jsFiddle:

如果您想让多个提交按钮在一个表单上执行不同的操作,click请为您已经完成的每个按钮构建处理程序。现在您必须将这些按钮移到容器外部<form></form>否则,插件会将它们视为普通submit按钮并干扰您的点击处理程序。

另一个问题是您的.valid(). 将它附加到form元素,,$("#myForm")而不是验证器初始化对象。

HTML

<form id="myForm" action="">
    ...
</form>
<input type="button" id="submit" value="Submit form" />
<input type="button" id="submit2" value="Submit form2" />

jQuery :

$(function () {
    var validator = $("#myForm").validate({
        // rules and options
    });

    $('#submit').click(function () {
        alert($("#myForm").valid());
        //do something
    });

    $('#submit2').click(function () {
        alert($("#myForm").valid());
        //do something else
    });
});

演示:http: //jsfiddle.net/vfrGU/

于 2013-06-03T18:58:52.707 回答