2017-04-20 61 views
0

看看下面我的代碼:爲什麼我總是無法通過javascript將複選標記複選框?

HTML:

<input type="checkbox" name="xyz[1][]" id="sel_44" style="margin:2px;" value="12345" onclick="myClick(this)"> 

的Javascript:

<script> 
$('#sel_44').attr("checked", true); 
</script> 

我已經想盡(通過驗收答案提示的方法)方法在這網址:Check/Uncheck checkbox with javascript?

我的問題和問題

我可以肯定的是$( '#sel_loc_cb_44')不爲空 ,而不是不確定的。但我可以通過javascript或jquery進行復選標記。 如何解決我的代碼和問題的根源是什麼?

請將jsfiddle添加到您的解決方案文章。謝謝

+0

設置'prop',而不是'attr'。 –

+0

邁克爾我可以看到許多答案被標記爲有用的任何東西解決? –

+0

確保代碼在加載DOM後運行。用'準備好'把它包起來。 – Tushar

回答

1

由於jquery 1.6+ prop方法提供了顯式檢索屬性值的方法,而attr檢索屬性。這裏checked是一個屬性。因此,使用prop來檢查複選框。

$('#sel_44').prop("checked", true); 
2

嘗試使用

$('#sel_44').prop("checked", true); 

必須改變DOM對象,而不是屬性

+0

@Michael attr改變一個lement的屬性不是元素的屬性來改變元素的屬性,你必須使用道具功能 –

+0

它不適合我。你可以在jsfiddle中給我例子嗎? – Michael

+0

當然,這裏是鏈接 https://jsfiddle.net/1vwqe31s/1/ –

1

的屬性格式試試這個用jQuery:

$("#sel_44").prop('checked',true); 
+0

不,這是錯誤的。 '..'是一個點太多了。 –

+0

@NiettheDarkAbsol確定它寫錯了我編輯它謝謝你 –

0

試試這個

$(document).ready(function() { 
$('#sel_44').attr("checked", true); 
}); 

我在jsfiddler中試過,看起來像你需要把你的代碼放在文檔就緒函數裏面。

https://jsfiddle.net/o2gxgz9r/5935/

+0

我不想這樣做時點擊。我想檢查當它第一次顯示,但使用JavaScript不寫入DOM檢查=「檢查」 – Michael

0

$(function(){ 
 
    $('#sel_44').prop('checked',true); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" name="xyz[1][]" id="sel_44" style="margin:2px;" value="12345">

+0

我不想這樣做時單擊。我想檢查,當它第一次顯示,但使用Javascript不寫DOM檢查=「檢查」 – Michael

+0

我已編輯它 – Brissy