我正在尝试使用Foundation 6.6 Abide来验证表单,如果该表单有效,我不希望它提交-而是触发另一个事件。无论我做什么-表格似乎总是要提交。
<form data-abide novalidate id="contactForm" >
...
<input type="submit" value="Next " id="goToBillingAddressTab"/>
</form>
我已经添加了此代码-但它始终会提交。
// script to prevent form from submitting
$('#contactForm').on("submit", function(ev) {
ev.preventDefault();
console.log("Submit for form intercepted");
return false;
});
// script to trigger other events
$('#contactForm').on("formvalid.zf.abide", function(ev,frm) {
console.log("Form is valid");
ev.preventDefault(); // also added prevent submit here
// perform other tasks here
return false; // and another version of prevent submit
});
我也尝试过这个-但它仍然提交:
$('#contactForm').on("submit", function(ev) {
ev.stopPropagation();
ev.stopImmediatePropagation();
ev.preventDefault();
console.log("Submit for form intercepted");
return false;
});
$('#contactForm').on("formvalid.zf.abide", function(ev) {
console.log("Form is valid");
ev.stopPropagation();
ev.stopImmediatePropagation();
ev.preventDefault();
// perform other task
return false;
});
解决方案!
我使用的是Foundation 6.6.1的“下载版本”。那是该bug潜入某个地方的地方。
如果我使用CDNS:https://cdnjs.cloudflare.com/ajax/libs/foundation/6.6.1/js/foundation.min.js
然后它应该工作了