2013-03-04 81 views
3

我在表格中有簡單的複選框。這是複選框標記,因爲我在代碼中看到它:Chrome複選框不會更改

<input type="checkbox" id="iFact123" onchange="submit_status_change(123,$(this).prop('checked'));" > 

現在,例如在Firefox中,此工作正常。在Chrome中,發生以下情況:

  • 當單擊複選框時,複選框看起來不會更改爲選中/取消選中。它保持不變。至少在視覺上
  • submit_status_change()運行良好,如果我重新加載頁面,該元素被加載爲檢查(這是從數據庫現在的信息)。由於此函數從$(this).attr('checked'))獲取信息,因此必須在參數發送時至少檢查元素 - 它看起來似乎不正確。

現在任何人都有任何想法,或遇到這樣的問題?

如果你認爲它有什麼用提交功能,那就是:

function submit_status_change(id, val){ 
    //$.post('something.php',{'change_status':id, 'status':val}, function(){}); 
} 

UPDATE:attr改爲prop

現在,Chrome改變複選框,至少在視覺上。事件似乎並沒有發生。

火狐:

TypeError: $(...).prop is not a function 
[Break On This Error] 

submit_tech_status(123,$(this).prop('checked')); 

UPDATE2:我切斷了一些代碼。現在提交功能非常清晰。 Firefox與prop錯誤,鉻打印沒有錯誤,但不運行提交功能。與之前不同的是,Chrome中的複選框似乎沒有被選中或取消選中,但功能正常。

+0

使用'.prop( '檢查')''而不是.attr( '檢查')',或'。是( ':勾選')'。 – 2013-03-04 09:17:53

+0

爲什麼? '.attr('checked')'可能會阻止實際更改? – 2013-03-04 09:24:04

+0

'.attr'顯示屬性的值,'.prop'則反映屬性。閱讀答案在http://stackoverflow.com/questions/5874652/prop-vs-attr – 2013-03-04 09:25:28

回答

0

只寫類似:

$("#iFact123").change(function() { 
    var c = $(this).prop("checked"); 
    // do whatever you want with c value 
});