請檢查下面的控制檯輸出,請注意,第一個輸入已檢查屬性和選擇:jQuery的:選中不與初始(HTML屬性)無線輸入工作
你可以看到我有2無線電input
s,1是checked
,然而無論是選擇器還是prop
也不是is
都適用於它。如果我手動點擊其中一個收音機,代碼就能正常工作。這裏是我的HTML:
<div class="col-sm-6">
Type:
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default active">
<input type="radio" name="generator-type" id="opt-type-passphrase" value="0" autocomplete="off" checked>
Passphrase
</label>
<label class="btn btn-default">
<input type="radio" name="generator-type" id="opt-type-password" value="1" autocomplete="off">
Password
</label>
</div>
</div>
爲什麼代碼不工作時頁面加載,當我沒有點擊任何收音機?有沒有辦法解決它?
編輯:發現這個問題,我有這樣的代碼在頁面加載:
$("input[name='generator-type'][value=" + this.Options.Type + "]").prop("checked", "");
正確的解決方法是使用:
.prop("checked", true)
但任何人都可以請解釋它是如何工作的?爲什麼有checked
屬性,但prop
函數仍然是錯誤的?
@HectorBarbossa謝謝你,我發現了問題的根源,但仍不明白「prop」和「is」是如何工作的。你能解釋一下嗎? –
關於它如何工作的問題在[文檔](http://api.jquery.com/prop/)中有介紹。要掌握的一個關鍵方面:HTML屬性只設置屬性的* initial *值。如果通過代碼或用戶交互進行更改,則HTML不會更改,但屬性會更改。 –