[英]Why's my form action still being triggered when validating the form despite using e.preventDefault()?
[英]Checkbox still gets unchecked despite using preventDefault
當getInfo()
返回false
,會拋出窗口alert
,但復選框仍會更改; 如果未選中則選中,反之亦然。
有什么幫助嗎?
$("input[type='checkbox']").click(function(event) { var someCondition = getInfo(); if (someCondition === false) { event.preventDefault(); window.alert("Nope"); return false; } }); function getInfo() { return false; // just for testing }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="checkbox" />
如果我正確理解您需要什么,您可以使用它
$("input[type='checkbox']").click(function (event) {
var someCondition = getInfo();
if(someCondition === false) {
var checkVal = $("input[type='checkbox']").val();
$("input[type='checkbox']").attr( "checked", !checkVal );
window.alert("Nope");
}
});
或者,如果您希望在條件為假時取消選中復選框
$("input[type='checkbox']").click(function (event) {
var someCondition = getInfo();
if(someCondition === false) {
$("input[type='checkbox']").attr( "checked", false);
window.alert("Nope");
}
});
希望能幫助到你
您的代碼似乎適用於小提琴,但其他一些插件可能會干擾該行為。 不過,請嘗試以下操作,看看是否可以解決問題
$("input[type='checkbox']").on('click',function (event) {
var someCondition = getInfo();
var checkBox = $(this);
if(someCondition === false) {
event.preventDefault();
checkBox.prop('checked', !checkBox.prop('checked'))
window.alert("Nope");
return false;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.