2016-03-01 115 views
0

我有一個數組在js中包含一些名稱的複選框,我想設置檢查。 問題是我不能做正確,我不知道爲什麼我錯了 這是我的代碼多選複選框設置檢查html

var array = ['one','two word','three']; 
for(var i = 0; i < array.length;i++) 
$(':checkbox[value="'+array[i]+'"]').prop('checked', true); 

有了這個HTML

<input type="checkbox" name="one[]" value="two word"> 
<input type="checkbox" name="one[]" value="four"> 
<input type="checkbox" name="one[]" value="one"> 

有了這個代碼我複選框保持uncheked,可有人告訴我爲什麼?

回答

1

True不是checked屬性的有效屬性值。該值可以被省略或必須checked

var array = ['one','two word','three']; 
 

 
for(var i = 0; i < array.length;i++) { 
 
    $(':checkbox[value="'+array[i]+'"]').prop('checked', 'checked'); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" name="one[]" value="two word"> 
 
<input type="checkbox" name="one[]" value="four"> 
 
<input type="checkbox" name="one[]" value="one">

下面是來自W3C

https://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#h-17.4

+0

問題仍然存在,這是複選框 [prevObject的控制檯日誌:n.fn .init [1],context:document,selector:「:checkbox [value =」Trieste「]]] context:documentlength:0prevObject:n.fn.init [1] selector:」:checkbox [value =「one」] 「__proto__:n [0] – cristianbregant

+0

是這樣嗎?你可以在代碼片段中運行代碼嗎? –

+0

是的,但在這一點上,我認爲在別的地方可能會有問題。我現在要看看問題:D謝謝! – cristianbregant

0

它爲我不同的是有三個一項規範爲一個值而不是FOUR ..

我修改了y我們的代碼,並得到了所有三個檢查您可以設置一個值 http://www.w3schools.com/jsref/prop_checkbox_value.asp

<input type="checkbox" name="one[]" value="two word"> 
<input type="checkbox" name="one[]" value="four"> 
<input type="checkbox" name="one[]" value="one"> 

var array = ['one','two word','four']; 
for(var i = 0; i < array.length;i++) { 
$(':checkbox[value="'+array[i]+'"]').prop('checked', true); 
} 

這裏是一個小提琴Sample fiddle