似乎有很多关于如何使用 javascript 提交表单的信息,但我正在寻找一种解决方案来捕获提交表单的时间并在 javascript 中拦截它。
HTML
<form>
<input type="text" name="in" value="some data" />
<button type="submit">Go</button>
</form>
当用户按下提交按钮时,我不希望提交表单,而是希望调用 JavaScript 函数。
function captureForm() {
// do some stuff with the values in the form
// stop form from being submitted
}
一个快速的 hack 是向按钮添加一个 onclick 函数,但我不喜欢这个解决方案......有很多方法可以提交表单......例如在输入时按回车键,这不考虑在内。
我
最佳答案
<form id="my-form">
<input type="text" name="in" value="some data" />
<button type="submit">Go</button>
</form>
在 JS 中:
function processForm(e) {
if (e.preventDefault) e.preventDefault();
/* do what you want with the form */
// You must return false to prevent the default form behavior
return false;
}
var form = document.getElementById('my-form');
if (form.attachEvent) {
form.attachEvent("submit", processForm);
} else {
form.addEventListener("submit", processForm);
}
编辑:在我看来,这种方法比在表单上设置 onSubmit
属性要好,因为它保持了标记和功能的分离。但这只是我的两分钱。
Edit2:更新我的示例以包含 preventDefault()
关于javascript - 拦截 JavaScript 中的表单提交并阻止正常提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5384712/