當複選框被更改時,我有以下內容。爲什麼這個if/else在我的jQuery中不起作用?
$(document).ready(function() {
$("#reviewed").change(function(){
if ($('#reviewed:checked').val() !== null) {
$.ajax({
url: "cabinet_reviewed.php?reviewed=yes",
cache: false,
success: function(html){
$("#reviewDate").replaceWith(html);
}
});
} else {
$.ajax({
url: "cabinet_reviewed.php?reviewed=no",
cache: false,
success: function(html){
$("#reviewDate").replaceWith(html);
}
});
}
});
})
這隻能工作一次。我正在查看複選框何時發生更改以及它的值何時更改。
更新: 我已經改變周圍的代碼如下(根據大家的意見)
$(document).ready(function() {
$("#reviewed").click(
function() {
var rURL = 'cabinet_reviewed.php?reviewed=';
if ($("#reviewed").is(":checked"))
rURL = rURL + "yes";
else
rURL = rURL + "no";
alert (rURL);
$.ajax({
url: rURL,
cache: false,
success: function(html){
$("#reviewDate").replaceWith(html);
}
});
});
})
文件cabinet_reviewed.php只是回聲的$ _GET [價值」已審覈'] 使用此更新後的代碼,警報會顯示正確的URL,但第二次點擊不會運行.ajax。 我需要做些什麼才能讓.ajax再次運行?
由於某種原因$('#reviewed')。is(':checked')似乎對我無效。 – Jason 2010-01-06 17:12:44
編輯添加完整示例。這一直在FF/IE中運行。您是否使用了不同的瀏覽器,我可以嘗試? – JonathanK 2010-01-06 17:23:26
我在MAC上的FF 3上 - 您的示例適用於警報,但我原來的.ajax不適用 - 它只在第一次點擊時起作用。 – Jason 2010-01-06 17:31:41