我在清單中有「待辦事項」行,每行都有一個「已完成」複選框。當用鼠標單擊框,下面的代碼運行,並正確地職位信息(更新數據庫來跟蹤任務已經完成):jQuery>關於複選框更改運行代碼
$(function()
{
$('[id*="howto_step_complete"]').mousedown(function()
{
var id = $(this).attr('id');
var howto_used_id = id.substr(id.length - 2);
var howto_step_minutes = $('#howto_step_minutes' + howto_used_id).val();
if (!$(this).is(':checked'))
{
var checked = true;
}
else
{
var checked = false;
}
var value = $('#howto_used_id').val();
if (howto_step_minutes != '')
{
$.post("updateChecklist.php",
{
howto_used_id: howto_used_id,
howto_step_complete: checked,
howto_step_minutes: howto_step_minutes
},
function (data)
{
var obj = jQuery.parseJSON(data);
var howto_used_id_returned = obj.howto_used_id;
var howto_step_complete = obj.howto_step_complete;
alert(howto_step_complete);
});
$(this).trigger("change");
}
else
{
alert('Minutes must be filled out before checking complete');
}
});
});
問題是,如果一個人使用的標籤走動然後使用空格鍵來檢查框,而不是觸發它,因爲它使用了mousedown。我試着改爲change()
,但隨後我的警報箱一直重複出現「false」。
這應該是真的,因爲我剛剛檢查過這個框,我不明白爲什麼它不斷出現。
我可以用什麼來代替mousedown()
來讓這段代碼正確發佈?
in change(),你可以檢查複選框是否被選中。如果它被選中,讓代碼運行。儘量不要使用mousedown – Asdfg