如果条件满足,则停止javascript单击事件执行

时间:2018-05-03 18:08:29

标签: javascript jquery html javascript-events

我正在尝试在满足某些条件时停止执行javascript事件处理程序,我的代码如下所示:

 $(".save").click(function (event) {
            $(".loader").fadeIn(300);

            var statusValue = $("#status").val();
            console.log(statusValue);

            if (statusValue == null || statusValue == '') {
                $("#status").css({
                    "border-color": "red",
                    "border-width": "1px",
                    "border-style": "solid"
                });
                event.preventDefault();
                console.log("NOT EXECUTED");
            }

            console.log("EXECUTED");
// .. some more code
}

当我检查控制台时,我得到的结果如下:

NOT EXECUTED

EXECUTED

所以我想知道为什么会这样? If == null条件是否应该event.preventDefault()阻止此.click事件从执行到结束?

我正在尝试实现,如果没有选择任何内容然后阻止执行,我的选择看起来像这样:

<select class="form-control" id="status">
        <option value="Done">Done</option>
        <option value="Complited">Completed</option>
        <option value="Cancel">Cancel</option>
</select>

4 个答案:

答案 0 :(得分:0)

事件已经发生。 你可以用这个:

 $('form').attr('onsubmit', 'return false;');

答案 1 :(得分:0)

不,event.preventDefault()没有做你想的,在这种情况下,如果你想停止执行函数,你可以只在{{1}结束时空return;阻止。另一个解决方案是放置if块。

else会阻止默认操作发生,例如,如果您将其置于event.preventDefault(),它将不会重定向到<a>link</a>,因为默认点击次数href是将页面重定向到a道具上的路径。 Example

答案 2 :(得分:0)

event.preventDefault()在您的情况下不起作用,请改用<{1}}

return;
$(".save").click(function (event) {

    if (true) {
      console.log("EXECUTED");
      return;
      console.log("NOT EXECUTED");
    }

    console.log("NOT EXECUTED");
});

答案 3 :(得分:0)

要停止使用它:

throw new Error("Something went badly wrong!");

源: https://stackoverflow.com/a/9298915/4110122