我很难让jQuery Validation插件按我的意愿运行。
我所拥有的是一个包含多个必需输入的表单,规则如下所示:
$("#makeEvent").validate({
onfocusout: false,
rules: {
name: {
required: true,
minLength: 2,
maxLength: 100
},
host: {
required: true,
minLength: 2,
maxLength: 100
},
startDate: {
required: true,
date: true
},
endDate: {
required: true,
date: true
},
desc: {
required: true,
minLength: 10,
maxLength: 255
},
webpage: {
required: false,
url: true
},
email: {
required: true,
email: true
},
}
});
现在我有一个自定义.click()调用,我想验证表单,然后在允许用户发送表单之前显示用户的预览。请参阅以下功能:
$('#submitPreview').click(function() {
if($("#makeEvent").valid() === false) {
//What to do if validation fails
} else if($("#makeEvent").valid() === true) {
//Show the preview and let the user either make changes or submit the final result
}
});
但是发生的情况是该函数只验证第一个输入(名称),甚至验证它不正确(规则至少要求2个字符,但只输入1个字符时仍然有效。如果没有字符,则只返回false完全加入了。
也许我的方法不是最好的,所以我对任何建议都持开放态度。如果你想看一下凌乱的源代码,你可以在这里看到这个功能:http://event.gusthlm.se/make.php
答案 0 :(得分:20)
我可以看到的两个问题是,您没有在输入字段中使用name
属性,并且您使用name
作为其中一个ID(导致IE出现各种各样的悲痛)表格提交)。
我建议在输入中添加名称属性,选择和textarea元素,并将“name”更改为“thename”:
<label for="thename">Börjar</label>
<input type="text" name="thename" id="thename"/>