我使用的是jquery 1.8.3和jquery验证插件1.13.1,它是最新的验证版本。我的表格看起来像这样,
<form method="post" class="contact-form" id="frmB5B976FFD59E885191DA4D572F6F773A" action="?nocache=1#frmB5B976FFD59E885191DA4D572F6F773A" novalidate="novalidate"><input type="hidden" value="true" name="useProtect">
<input type="hidden" value="0" class="cffp_mm" name="formfield1234567891" id="fp6939F8D3-F46A-C008-37330D6AA1B0BED2">
<input type="hidden" value="" class="cffp_kp" name="formfield1234567892" id="fp6939F8D4-FE37-FF6D-AD27DC356205A886">
<input type="hidden" value="39890522,19894825" name="formfield1234567893" id="fp6939F8D6-F82F-92B8-A4B0BA6A966190FA">
<label style="display:none">Leave this field empty <input type="text" value="" name="formfield1234567894" id="fp6939F8D7-AB86-5202-464CA191E50CE678"></label>
<p class="column one-half"><input type="text" required="" placeholder="Please Enter First Name" name="fname" id="fname" aria-required="true"></p>
<p class="column one-half last"><input type="text" required="" placeholder="Please Enter Last Name" name="lname" aria-required="true"></p>
<p class="column one-half"><input type="email" required="" placeholder="Please Enter Email" name="email" aria-required="true"></p>
<p class="column one-half last"><input type="text" required="" placeholder="Please Enter Phone Number" name="tel" aria-required="true"></p>
<p class="clear"><textarea rows="3" required="" placeholder="Please Enter Message" name="comment" cols="5" aria-required="true"></textarea></p>
<p><input type="submit" id="submitme" value="Submit" name="submitme"></p>
</form>
我的验证看起来像这样 -
var ruleSet = {required: true};
jQuery( "#frmB5B976FFD59E885191DA4D572F6F773A" ).validate({
rules:{
fname: ruleSet,
lname: ruleSet,
email: { required: true, email: true },
phone: { required: true, phoneUS: true },
message: { required: true }
}
});
表单位于mura admin的表单部分。我使用表单编辑器创建了它。我无法理解为什么即使存在无效字段也会提交表单,可能是因为验证插件关闭了HTML5验证,而Mura只是提交表单,无论表单是有效还是无效!但是,如果验证失败,为什么验证插件不会preventdefault()
?
此外,我尝试使用JSFiddle进行验证,它在那里工作。请帮帮我。谢谢。
仅供参考。上面的表单html是来自“页面源”的表单,而不是表单编辑器中的实际表单。这就是为什么所有奇怪的form id
和cffp_mm
等等。
答案 0 :(得分:0)
对于那些来这里寻找同样问题的人。我将novalidate="novalidate" onsubmit="return true;
添加到form
标记,然后就可以了。 Mura覆盖了jquery验证,即使jQuery Validation插件将novalidate
属性放在form标签中,所以我不得不在那里手动添加novalidate
。我希望这会有所帮助。