表单提交前的 Javascript 处理条件

标签 javascript jquery ajax spring jsp

我需要根据条件提交表单。如果 true 通过模式发送表单或直接提交表单。发生的情况是,即使条件为真,表单也会被发送,而无需等待触发模式上的点击。经过我的研究,我了解到有一种方法可以使用 e.preventDefault(); 来阻止提交。我无法得到我想要的结果,因为它只是停止了执行。

    (function($) {
    $(document).ready(function() {

                $( "#save" ).click(function(e) {

                    if (selectedValIndConstitutionCan === 'waiting'){
                          $("#form").on('submit', function(e){

                                 e.preventDefault();

                              });
                        $('#popupConfirmationEnregistrement').modal("show");


                    }   

                    $("#confirmYesButtonModal").click(function() {

                        $("#form").attr(
                                'action',
                                CONTEXTE +
                                '/formsave/save');
                            $("#form").submit();

                            showProgress();
                    });


                    showProgress();
                    $("#form").attr(
                        'action',
                        CONTEXTE +
                        '/formsave/save');
                    $("#form").submit();


                });




        selectDeselectRadioButtons();

    });
})(jQuery);

HTML 和 JSP

<%@ include file="/WEB-INF/pages/include/include.jsp" %>

<script src="${contextpath}/js/inputMask/jquery.mask.min.js"></script>
<script type="text/javascript">
</script>



  <form:form id="form" modelAttribute="formSaving" action="#">
  <fwd:csrfToken />

    <div class="row form-group boutons-margin-top">
        <div class="col-xs-offset-12 col-xs-12 control-label text-left">


            <button class="btn btn-primary" type="button" id="save" data-toggle="modal" data-target="#modalSave">
            <spring:message code="xxx.save"/>
            </button>


        </div>
    </div>


 </div>
</div>
</c:otherwise>
</c:choose>
</form:form>    


<div id="modalSave" class="modal" tabindex="-1" role="dialog" data-backdrop="static" data-keyboard="false">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header"></div>
            <div class="modal-body">
                <spring:message code="msg"/>
            </div>
            <div class="modal-footer">
                <button id="confirmNo" class="btn btn-default" data-dismiss="modal"><spring:message code="no"/></button>
                <button id="confirmYesButtonModal" class="btn btn-primary" data-dismiss="modal"><spring:message code="yes"/></button>
            </div>
        </div>
    </div>
</div>

最佳答案

如果您单击“保存”按钮,它无论如何都会在此处提交。

                 showProgress();
                    $("#form").attr(
                        'action',
                        CONTEXTE +
                        '/formsave/save');
                    $("#form").submit();

我不确定为什么,但如果您想要在 selectedValIndConstitutionCan 未“等待”时提交它,请使用 else。

 (function($) {
    $(document).ready(function() {

                $( "#save" ).click(function(e) {

                    if (selectedValIndConstitutionCan === 'waiting'){
                          $("#form").on('submit', function(e){

                                 e.preventDefault();

                              });
                        $('#popupConfirmationEnregistrement').modal("show");


                    }else{
                        showProgress();
                        $("#form").attr(
                            'action',
                            CONTEXTE +
                            '/formsave/save');
                       $("#form").submit();


                     }

                    $("#confirmYesButtonModal").click(function() {

                        $("#form").attr(
                                'action',
                                CONTEXTE +
                                '/formsave/save');
                            $("#form").submit();

                            showProgress();
                    });            
                });




        selectDeselectRadioButtons();

    });
})(jQuery);

关于表单提交前的 Javascript 处理条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59656845/

相关文章:

javascript - Firefox 阻止 Facebook Js

javascript - 防止在 Javascript 中使用 for-in 循环进行排序

javascript - Jquery-事件 : mouse X position is within element's vertical borders range

javascript - 当我调整页面大小时,我的菜单和标题移动,我做错了什么?

javascript - 当用户在弹出菜单外单击时,我应该隐藏弹出菜单吗

javascript - 导入模块 typescript 错误

javascript - 如何使用jQuery在 Bootstrap 中动态设置弹出偏移

php - 带警报的 AJAX 提交功能不起作用

用于加载速度的 PHP 和 Javascript/Ajax 缓存 - JSON 和 SimpleXML

javascript - 在成功调用之外使用通过 Ajax 加载的 XML 文件内容