2013-02-18 3 views

risposta

22

Non utilizzare la virgola per applicare entrambe le condizioni sullo stesso elemento.

$('input[name=weekday][value=1]').attr("checked", "checked"); 

Come un lato nota si dovrebbe usare prop() invece di attr() per proprietà come suggerito dal jQuery doc e indicata da @tyleha.

A partire da jQuery 1.6, il metodo .attr() restituisce undefined per gli attributi che non sono stati impostati. Per recuperare e modificare proprietà DOM come lo stato selezionato, selezionato o disabilitato degli elementi del modulo, utilizzare il metodo .prop().

È possibile utilizzare .prop(propertyName, value) per impostare la proprietà selezionata come mostrato di seguito.

$('input[name=weekday][value=1]').prop("checked", true); 
+0

È necessario (necessario?) Utilizzare '.prop' anziché' .attr' per controllare tali proprietà DOM: http://api.jquery.com/attr/ quindi solo '.prop (" controllato ")' dovrebbe fare il trucco – tyleha

+0

Grazie a @tyleha, hai ragione a usare prop() qui. Ma .prop ("checked") otterrà il valore della proprietà invece dell'impostazione. Per impostare la proprietà .prop ("checked", true); sarà usato. – Adil

1

Non è necessaria la virgola. Prova:

var checked = $('input[name = weekday][value =1]').attr("checked", "checked"); 
1

prova con questo

$('input[name=weekday][value=1]').attr("checked", "checked"); 
1

virgola separa più selettori, in modo che cercavi ingressi denominati "giorno della settimana" e elementi di qualsiasi tipo con value = 1.

Per combinare entrambi i criteri in un solo selettore, aggiungili uno dopo l'altro:

$('input[name=weekday][value=1]').attr("checked", "checked"); 
0
<input type="radio" name="some[thing]" value="one"> 
<input type="radio" name="some[thing]" value="two"> 
<input type="radio" name="some[thing]" value="three"> 
<input type="radio" name="some[thing]" value="four"> 
<input type="radio" name="some[thing]" value="five"> 
<input type="radio" name="some[thing]" value="six"> 

alert('1'); 
$("input[value='four'][name='some\\[thing\\]']").attr("checked",true); 
alert('2'); 
$("input[value='four'][name='some\\[thing\\]']").attr("checked",false); 
alert('3');