如何防止提交按钮使用 Foundation 6.6 和 Abide 提交表单
How to prevent submit button submitting a form using Foundation 6.6 and Abide
我正在尝试使用 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 的 "DOWNLOAD VERSION"。这就是错误在某处蔓延的地方。
如果我使用 CDNS:
https://cdnjs.cloudflare.com/ajax/libs/foundation/6.6.1/js/foundation.min.js
然后它会正常工作
我正在尝试使用 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 的 "DOWNLOAD VERSION"。这就是错误在某处蔓延的地方。
如果我使用 CDNS: https://cdnjs.cloudflare.com/ajax/libs/foundation/6.6.1/js/foundation.min.js
然后它会正常工作