我正在尝试在满足某些条件时停止执行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>
答案 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!");