0

我在 1 页中有 2 个表格form.php。在第一种形式中,我有 1 个输入字段和 1 个文本字段。第二个表单我有一个上传图片按钮,我用它来上传而不重定向,所以onchange我提交了那个表单。

但是,如果用户没有选择任何图像,则最终表单不应提交。

这是我的代码:

$("#storyform").validate({
  rules: {
    story: {
      required: true,
      maxlength: 250
    },
    place: "required"


  },
  messages: {
    story: {
      required: "Please write your story",
      maxlength: $.format("At Max {0} characters !")
    },

    place: "Please write your place"

  },
  errorElement: "span",
  wrapper: "span" // a wrapper around the error message

});
4

2 回答 2

2

.validate()分别在每个表单上初始化。然后只需测试以查看第一个表单在第二个表单中使用是否.valid()有效submitHandler

$(document).ready(function(){

    $("#firstForm").validate({  // initialize form validation on form 1
        // rules & other options
    });

    $("#secondForm").validate({ // initialize form validation on form 2
        // rules & other options,

        errorPlacement: function(error, element) {
            $("#firstForm").valid();  // forces test on form 1 when form 2 has errors
            error.insertAfter(element); // default error placement
        },
        submitHandler: function(form) {
            if ($("#firstForm").valid()) {  // test to see if form 1 is valid before submitting form 2
               form.submit;
            }
            return false;
        }
    });

});

$("#firstForm").valid()上面在两个位置使用了以下两种情况:

1) 表格#2有效submitHandler:所以我们必须在提交表单的条件下测试表单 #1 的有效性。

2) 表格#2无效;所以我们必须在errorPlacement:. 由于我们使用的是errorPlacement:,所以我们必须指定它,否则不会出现错误。在示例中,我只是使用了默认的错误放置代码。


编辑

为了让第二个表单与第一个表单同时显示错误,还要添加.valid()到第二个表单的errorPlacement:选项,当表单2有错误时强制对表单1进行测试。请参阅上面的编辑代码。

工作演示:http: //jsfiddle.net/eLsDs/1/


编辑 2

我看不到您的 HTML,因为您没有包含它,但我修改了我的演示以包含您的 OP 中的代码。

使用 OP 的代码演示:http: //jsfiddle.net/eLsDs/2/

于 2012-11-20T15:31:11.913 回答
1

你必须有你的理由使用两个表格,所以调用这个来检查另一个表格是否有效

$('#otherform').validate().valid()
于 2012-11-20T15:20:28.150 回答