我正在努力使用bassistance jQuery validator plugin但没有成功。
我不明白如何设置特定的验证输入:
<script>
$(document).ready(function(){
$("#form-id").validate({
username_id: { required:true },
password_id: { required:true, minlength:8 },
confirm_id: { required:true, minlength:8, equalTo:"#password_id" }
},
messages: {
username_id: "Missing username",
password_id: {
required: "Missing password",
minlength: "Password short (5 chars min required)"
},
confirm_id: {
required: "Missing password",
minlength: "Password short (5 chars min required)",
equalTo: "Password mismatch"
}
});
});
</script>
<form id="form-id" etc>
<input id="username_id" name="data[User][username]"><br>
<input id="password_id" name="data[User][password]"><br>
<input id="confirm_id" name="data[User][confirm]"><br>
<input type="submit" value="Register">
</form>
这个验证器总是在输入i测试中写class='valid'
?
我确定问题出在对象名称中,因为我不明白是否应该设置id
或name attribute
以使插件正常工作。
我发现的每个教程总是使用相同的id和name属性名称,所以我无法理解我错在哪里。
我的问题是我的名字属性来自cakephp,所以我的input form name attribute
就像data[User][username]
,我不知道如何在插件中使用它。
我该如何解决?
PS:我正在使用jquery 1.6.1,我看到示例使用的是1.3.2,但是firebug没有返回任何错误。
答案 0 :(得分:2)
你必须使用name
属性,因为它们有方括号,你需要引用这样的名字:
$("#form-id").validate({
'data[User][username]': { required:true },
//same for your other fields
},
messages: {
'data[User][username]': "Missing username",
});