-1

我正在使用 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

4

1 回答 1

0

对于那些来这里寻找同样问题的人。我添加novalidate="novalidate" onsubmit="return true;form标签中,它成功了。Mura 覆盖了 jquery 验证,即使 jQuery 验证插件将novalidate属性放入表单标记中,所以我不得不手动添加novalidate。我希望这有帮助。

于 2015-03-17T13:46:59.140 回答