在jQuery验证中将表单参数传递给子对象

时间:2013-08-13 16:01:12

标签: jquery jquery-validate

我正在使用jQuery验证,使用以下代码:

$("#demo").validate({
  rules : {
    password : { required : true, }, 
    password2 : { required : true, }, 
  },
  messages: {
    password : { required: "This field is required.",},
    password2 : { required: "This field is required.",},
  },
  submitHandler: function(form) {
    $( "#dialog-confirm" ).dialog({
      autoOpen: true,
      resizable: false,
      height:250,
      width:500,
      modal: true,
      buttons: {
        OK : function(form) {
          form.submit();
        }
      }
    });
  }, 
});

我要做的是将formsubmitHandler函数传递到按钮对象函数。一旦他们点击OK,就会提交表格。

3 个答案:

答案 0 :(得分:1)

在jQuery Validate插件中,form参数仅代表您的form对象。在这种情况下,form代表与$("#demo")完全相同的内容。由于您尝试在.dialog()方法中使用它,因此可能无法识别form

看看这是否更好......

submitHandler: function(form) {
    $( "#dialog-confirm" ).dialog({
        autoOpen: true,
        resizable: false,
        height:250,
        width:500,
        modal: true,
        buttons: {
            OK : function() {
                $("#demo").submit();
            }
        }  
    });
}

答案 1 :(得分:0)

从“确定”按钮处理程序中删除form参数。您正在隐藏form的{​​{1}}参数。

答案 2 :(得分:0)

为了让jQuery在单击“确定”后发送表单,您需要按如下方式构建表单:

<form id="demo" method="post" action="">
  <input type="text" name="password" />
  <input type="text" name="password2" />

  <div id="dialog-confirm" title="Success"> Thank you, success message</div>

  <input type="submit" name="submit" value="Submit" />
</form>

这允许jQuery验证识别“OK”按钮。请注意,对话框应位于提交按钮之前的表单内。