jQuery验证在我用于验证表单的代码中不起作用。
我使用PureMVC并在index.html文件中使用从ajax请求加载的contact.html文件。如果我在按钮上发出javascript警告,那么我可以看到它们,但是他们没有对点击按钮进行任何验证
$("#contactUsSubmit").live('click', function() {
$("#contactForm").validate({
errorLabelContainer: $("#contactAlert ul"),
rules: {
contactName: {
required: true,
minlength: 6
}
}
});
});
有人知道我在这段代码中做错了什么。 #contactname是contactName的ID
答案 0 :(得分:0)
那么live('click', (...)
函数被正确调用了吗? JQuery 1.9删除了.live函数。
答案 1 :(得分:0)
您的代码:
$("#contactUsSubmit").live('click', function() {
$("#contactForm").validate({
//options,
...
});
});
你不应该这样实现它。您只是在每次点击时初始化插件。 在之后第一次点击初始化插件(然后第二次点击将验证)之后才会进行验证。该插件已内置click
事件处理程序,并自动捕获。
.validate()
应该在DOM中调用一次,准备好初始化插件。
$(document).ready(function() {
$("#contactForm").validate({
//options,
rules: {
contactName: {
required: true,
minlength: 6
}
}
});
});
请注意,name
属性对于所有输入元素都是必需的:
<form id="contactForm">
<input type="text" name="contactName" id="contactName"/>
<input id="contactUsSubmit" type="submit" />
</form>
使用您的表单演示进行游戏:http://jsfiddle.net/FfJCV/
答案 2 :(得分:-1)
我认为这对你不起作用可能是因为you must have name elements on your form fields。看看这个PUREMVC示例,它没有字段元素的名称。
修改强> url粘贴在下面,因为编辑有问题
没有理由说明这段代码不起作用,请注意您必须立即调用valid()来查看任何错误消息。
$("#contactUsSubmit").live('click', function() {
$("#contactForm").validate({
errorLabelContainer: $("#contactAlert ul"),
rules: {
contactName: {
required: true,
minlength: 6
}
}
});
// call valid to see errors
$("#contactForm").valid();
});