我在1页form.php
中有2个表单。在第一种形式中,我有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
});
答案 0 :(得分: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:
内触发表格#1有效性测试。由于我们正在使用errorPlacement:
,因此我们必须指定它,否则错误将不会出现。在示例中,我只使用了默认的错误放置代码。
修改强>:
为了让第二个表单与第一个表单同时显示错误,还要将.valid()
添加到第二个表单的errorPlacement:
选项,这会在表单2出错时强制对表单1进行测试。请参阅上面的编辑代码。
工作演示:http://jsfiddle.net/eLsDs/1/
编辑2 :
我看不到您的HTML,因为您没有包含它,但我修改了我的演示以包含您的OP中的代码。
使用OP代码进行演示:http://jsfiddle.net/eLsDs/2/
答案 1 :(得分:1)
您必须有理由使用两个表格,因此请调用此表格以检查其他表格是否有效
$('#otherform').validate().valid()