我在表单上进行了一些客户端 JavaScript 验证。它很好用。但我想适应禁用 JavaScript 的用户。我的验证不是从表单的 onsubmit 属性运行的,它是一个绑定(bind)到表单中普通按钮的事件处理程序。所以启动验证和提交的按钮实际上不是提交,它只是 type="button":
<input type="button" value="Ok" class="okbtn">
然后我向其执行验证的单击事件注册了一个事件处理程序。如果一切通过,它会提交:
function clickHandler(event){
thisForm = event.data.caller
var valid = submitValidation(thisForm);
if (valid == true){
thisForm.submit();
} else{
}
}
我的问题是如果用户禁用了 JS,则无法提交表单。我可以制作按钮 type="submit"
,它适用于禁用 JS 的用户,但随后它将*始终提交表单并绕过启用 JS 的用户的验证。 (验证将运行,但无论如何都会提交)。如果我制作按钮 type="submit"
是否可以在单击时阻止提交事件?我正在使用 JQuery,JQuery 可以禁止提交吗?我希望我的验证能够处理它是否被提交。
最佳答案
您可以通过执行以下操作来抑制提交点击:
$('input[type=submit]').bind('click', function(e) {
e.preventDefault() // prevents the form from being submitted
clickHandler(); // the custom submit action
});
或者,您可以像这样抑制实际的表单提交:
$('form').bind('submit', function(e) {
e.preventDefault();
// etc
});
关于jquery - 仅当禁用 javascript 时才启用禁止提交事件/提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125470/