我有这个HTML;
<form action="" method="post" name="ApplyForm" id="ApplyForm" enctype="multipart/form-data">
<input type=text class="required"/>
<input type="submit" onclick="return validateForm()" class="submit" value="Submit Application" title="Submit application" />
和我的剧本;
$(function () {
$("#ApplyForm").validate();
});
function validateForm() {
alert($(".email").valid());
return false;
}
所以正在发生的事情是,如果我提醒alert($("#ApplyForm").valid());
我总是如实,但如果我提醒各个字段我得到了预期的结果,但表格仍然回复;
此代码有效但我不确定为什么验证不在表单上工作;
function validateForm() {
if ($(".required").valid() == 0)
return false;
else
return true;
}
我知道这不是很多,但我希望其他人有这种体验,可以告诉我一个解决方案。
答案 0 :(得分:0)
<form action="" method="post" name="ApplyForm" id="ApplyForm" onSubmit="return validateForm()" enctype="multipart/form-data">
<input type=text class="required"/>
<input type="submit" class="submit" value="Submit Application" title="Submit application" />
答案 1 :(得分:0)
尝试在表单中的第一个经过验证的元素中添加name
属性:
<input type=text required name='blah' />
我花了2个小时追踪同一个问题,我发现如果表单中的FIRST验证元素具有name
属性,那么一切都按预期工作(即.valid()
将如果表单无效,则返回false)。其他经过验证的元素是否具有名称属性似乎没有区别。
在普通形式中,您肯定需要名称属性,因为这是将数据提交到服务器时使用的属性。但是在更现代的环境中,例如那些使用Knockout的环境,没有理由在输入元素上有name
属性,因为数据绑定可以保持数据模型的更新。
答案 2 :(得分:0)
你应该添加
<input type="text" data-val="true" name="name" data-required="1">
对于不显眼的HTML 5兼容属性,描述要附加到输入字段的验证器
其他信息Click here