javascript - 仅当函数返回 true 时才提交表单

标签 javascript

我需要一种仅当 foo 返回 true 时才提交表单的方法。我试过这段代码,但即使 foo 返回 false,它也会提交表单。

<input type="submit" value="submit" onclick="return foo();" />
<script type="text/javascript">
    function foo() {
        // if... return true
        // else return false
    }
</script>

如果我使用 onsubmit 函数,那么它会先提交。所以这对我来说不好。

最佳答案

您可以尝试使用 jquery ajax 提交的替代方法,如下所示,我正在使用,可能对您也有帮助..

 var request;
    $("#YourFormId").submit(function(event){

  if(yourFunction()==false) {
         return false;
     }

        if (request) {
            request.abort();
        }
       var $form = $(this);
       var $inputs = $form.find("input, select, button, textarea");
       var serializedData = $form.serialize();
       $inputs.prop("disabled", true);
       request = $.ajax({
            url: "yourFormActionPage.php",
            type: "post",
            data: serializedData
        }); 
        request.done(function (response, textStatus, jqXHR){
            //ok
        });

        request.fail(function (jqXHR, textStatus, errorThrown){
             //track it
        });

        request.always(function () {
            $inputs.prop("disabled", false);
        });

        event.preventDefault();
    });

关于javascript - 仅当函数返回 true 时才提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31623253/

相关文章:

javascript - 在 Ionic 应用程序上使用 $.getScript 加载 Google Map Api

javascript - 没有数据时如何隐藏标签?

javascript - 在 Firefox 中打印 iframe 时如何打开打印预览对话框?

javascript - 在TinyMce中,当编辑器处于焦点时如何更改容器的颜色?

javascript - 简单的双for循环

javascript - 如何创建 Microsoft 帐户登录我的网站,类似于 Google?

javascript - 用破折号替换特殊字符

javascript - 是否有支持在服务器和客户端上共享 View 的 .Net MVC 解决方案?

javascript - 如何使用 Vue/JavaScript 在移动设备上触发长按(单击并按住)

javascript - 连接前瞻正则表达式并保留(所有)分隔符?