仅在禁用javascript时启用提示提交事件/提交按钮

Pur*_*ell 5 html forms jquery submit

我在表单上有一些客户端JavaScript验证.它很棒.但是我想要容纳禁用JavaScript的用户.我的验证不是从表单的onsubmit属性运行的,它是一个绑定到表单中普通按钮的事件处理程序.因此,启动验证和提交的按钮实际上不是提交,它只是type ="button":

<input type="button" value="Ok" class="okbtn">
Run Code Online (Sandbox Code Playgroud)

然后我向其执行验证的click事件注册一个事件处理程序.它提交,如果一切都通过:

function clickHandler(event){
    thisForm = event.data.caller
    var valid = submitValidation(thisForm);
    if (valid == true){
        thisForm.submit();
    } else{
      }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如果用户已禁用JS,则无法提交表单.我可以做的按钮type="submit",这将对于JS-禁用用户的工作,但随后将*总是提交表单,并绕过启用JS-用户验证.(验证将运行,但无论如何都会提交).如果我按下按钮type="submit"可以阻止提交事件,如果它被点击?我正在使用JQuery,JQuery可以抑制提交吗?我希望我的验证能够处理它是否被提交.

Dav*_*ing 12

您可以通过执行以下操作来抑制提交点击:

$('input[type=submit]').bind('click', function(e) {
    e.preventDefault() // prevents the form from being submitted
    clickHandler(); // the custom submit action
});
Run Code Online (Sandbox Code Playgroud)

或者,您可以像这样禁止实际表单提交:

$('form').bind('submit', function(e) {
    e.preventDefault();
    // etc
});
Run Code Online (Sandbox Code Playgroud)