jQuery addClass() 仅当前面有一个alert() 框时才起作用

标签 jquery jsp addclass event-bubbling

我有如下按钮-

<input type="button" onclick="validateAllAnswers(event);" value="Submit" id="tab_button1" class="btn btn-info"/>

function validateAllAnswers(e) {
    var isCompleteTabOne = true;
    var isCompleteTabTwo = true;
    var isCompleteTabThree = true;
    var flag = true;
    if (isCompleteTabOne == false && isCompleteTabTwo == false) {
        flag = false;
        alert("You missed a question(s) in Questionnaire One. Please answer before submitting the quiz!");
        document.getElementById("TabQuestionnaireOne").click()
        $("#TabQuestionnaireOne").addClass("active");
        for (var i = 0; i < noQuestionsTabOne; i++) {
            if (!($('input[name=tab1_radio_' + i + ']').is(':checked'))) {
                alert("111")
                e.stopPropagation();
                $('label[id=highlight_tabOne_' + i + ']').addClass('highlighter');
            }
        }
    }
}

问题:当我前面有一个alert() 时,addClass 方法工作得很好。但是,如果没有alert(),颜色就不会改变。另外,我尝试使用 event.stopPropagation()。这并没有解决我的问题。有人可以让我知道我在这里缺少什么吗?提前致谢!

最佳答案

您的表单似乎正在提交,然后页面会重新加载,从而清除表单并中止可能由提交触发的任何脚本。 另外,您最好监听表单的提交事件,因为可能还有其他方式触发该事件,例如 ENTER 键等

更好的方法是:

<!--HTML-->
<form id="myform" action="...." ...>
.....
<input type="button" value="Submit" id="tab_button1" class="btn btn-info"/>
</form>

//JS
$(function() {
    $('#myform').on('submit', function(e) {
        e.preventDefault();
        //your code goes here
        //you may also want count any unfilled fields and use e.preventDefault()
        //if the # is greater than zero
        //OR use e.preventDefault() at the top
        //then use this.submit() if all fields are filled/provided/checked
    });
});

关于jQuery addClass() 仅当前面有一个alert() 框时才起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32043185/

相关文章:

jquery - 无法通过 jquery 获取要切换/添加的类

javascript - (JQUERY) - 通过 WebSocket 返回 JSON 对象并应用于选择不起作用

java - 如何使用表单 :select outside the form? spring、hibernate 中的项目

java - 如何从Jsp中的Blob中删除Html标签

java - 在 JSP 中显示包含 csv 数据的 java 对象的最佳方式?

jquery - 悬停一个 div 改变另一个?

jquery - 如何使用 jquery 重置 css 动画类?

jquery - 如何让一个 div 在页面上随机移动(使用 jQuery 或 CSS)

jquery - FullCalendar $ ('td.fc-day' ).鼠标悬停有时会在小月历上得到错误的日期

javascript - 使用 JQuery 从 html5 视频播放器触发事件