首先,我在attr的,因爲,如果我的理解,道具是用來(「選中」)代替使用道具(「選中」)檢索它的複選框是否被檢查,並且attr只會告訴你是否設置了html屬性(如在最初的html代碼中)。的jQuery JavaScript的.prop的複選框(「選中」)將返回undefined爲選中的複選框
現在我在PHP寫出來這樣的兩個複選框:
echo '<h4>Special</h4>';
$specials=array('Is Home Page', 'Does not appear in navigation');
for($i=0;$i<count($specials);++$i){
if($specials[$i]!=''){
echo '<input type="checkbox" name="special[',$i,']"';
if($page['special']&pow(2,$i))
echo ' checked="checked"';
echo ' />',$specials[$i],'<br />';
}
}
導致要素:
<input type="checkbox" name="special[0]"/>
<input type="checkbox" name="special[1]"/>
當我檢查我想檢索值發送一個複選框到服務器,但這似乎並沒有工作:
var $home = $("#tabs-advanced-options input[name='special[0]']");
//if($home.is(":checked")){ // always returns false
if($home.prop("checked")){ // always returns undefined
special["0"] = "Home";
}
var $hidden = $("#tabs-advanced-options input[name='special[1]']");
//if($hidden.is(":checked")){ // always returns false
if($hidden.prop("checked")){ // always returns undefined
special["1"] = "isHidden";
}
正如在評論t他的代碼,prop(「checked」)總是返回undefined。 我現在複選框被選中... 我也試過用is(「:checked」),但總是返回false。 只有一個DOM元素在每次選擇(我知道.prop()只適用於第一個集合中)
任何想法是值得讚賞!
的選擇是正確的,因爲我已經在控制檯測試,它返回正確的結果(有和沒有backslashes-:
$("#tabs-advanced-options input[name='special\\[1\\]']")
<input type="checkbox" name="special[1]">
$("#tabs-advanced-options input[name='special\\[0\\]']")
<input type="checkbox" name="special[0]">
$("#tabs-advanced-options input[name='special[1]']")
<input type="checkbox" name="special[1]">
$("#tabs-advanced-options input[name='special[0]']")
<input type="checkbox" name="special[0]">
我已經使用jQuery的版本
我使用jQuery的1.9.0:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
問候
什麼是您使用的jQuery版本? –
'$ home'是否有任何元素? –
@ ruben056 jsfiddle會更好。 – Praveen