我的jquery validate插件存在问题,对我来说没有意义。请问任何人都可以看到我的错误在哪里?
这是我的HTML:
<form id="form">
<input type="text" name="name" class="required" />
<input type="text" name="email" class="required email" />
</form>
<a id="link">Save</a>
这是我的JS
<script src="jquery 1.7.1"></script>
<script src="jquery.validate.1.9"></script>
<script>
$('#link').click(function()
{
$('#form').validate();
if ($('#form').valid()) // check if form is valid
{
// do some stuff
}
else
{
// just show validation errors, dont post
}
});
</script>
表单永远不会得到验证,或者至少.valid()
函数总是返回true,但我不明白为什么?我使用了validate插件多年,但没有在这种情况下使用。
答案 0 :(得分:7)
如果您有链接并需要验证表单。 此功能也会转到UI选项卡中的下一个选项卡,使用每个选项卡中的表单验证每个选项卡。
$('.next-tab').click(function() {
//if form is valid
if ($("#frmSignup").valid()) {
//activate next tab
$('#signuptabs').tabs('enable', $(this).attr("rel"));
//switch to next tab
$tabs.tabs('select', $(this).attr("rel"));
return false;
}
});
答案 1 :(得分:5)
现在解决了。现在验证器做了我想要的。下面的JS,同样的HTML:
$(function()
{
$('#link').click(function()
{
if ($("input[name=name]").valid() && $("input[name=email]").valid())
{
// do some stuff
}
else
{
// just show validation errors, dont post
}
});
});
答案 2 :(得分:4)
您正在尝试将事件附加到尚未呈现的元素
你必须使用onDOM ready
$(function() {
$('#link').click(function(){
$('#form').validate();
if ($('#form').valid()) // check if form is valid
{
// do some stuff
}
else
{
// just show validation errors, dont post
}
});
});
$(functionHandler)
== $(document).ready(functionHandler);
规则1 :总是认为,DOM必须在您编写的代码之前呈现,这是此网站上最常见的错误...
此提示以及更多内容,您可以阅读此网站上的jquery
代码,read it
答案 3 :(得分:3)
您需要将验证放在“准备好文档”
上$(document).ready(function(){
$('#form').validate();
});