Nelle versioni di jQuery precedenti alla 1.6 utilizzare:
$('input[name="correctAnswer"]').attr('checked', false);
Nelle versioni di jQuery successive alla 1.6 dovresti usare:
$('input[name="correctAnswer"]').prop('checked', false);
ma se stai usando 1.6.1+ puoi usare il primo modulo (vedi nota 2 sotto).
Nota 1: è importante che il secondo argomento sia falso e non "falso" poiché "falso" non è un valore falso. vale a dire
if ("false") {
alert("Truthy value. You will see an alert");
}
Nota 2: A partire da jQuery 1.6.0, ora ci sono due metodi simili .attr
e .prop
che fanno due cose correlate ma leggermente diverse. Se in questo caso particolare, i consigli forniti sopra funzionano se si utilizza 1.6.1+. Quanto sopra non funzionerà con 1.6.0, se si utilizza 1.6.0, è necessario eseguire l'aggiornamento. Se vuoi i dettagli, continua a leggere.
Dettagli: Quando si lavora con elementi DOM HTML rettilinei, ci sono proprietà associate all'elemento DOM ( checked
, type
, value
, ecc) che forniscono un'interfaccia per lo stato in esecuzione della pagina HTML. C'è anche l' interfaccia .getAttribute
/ .setAttribute
che fornisce l'accesso ai valori degli attributi HTML come forniti nell'HTML. Prima di 1.6 jQuery offuscava la distinzione fornendo un metodo .attr
, per accedere a entrambi i tipi di valori. jQuery 1.6+ offre due metodi .attr
e .prop
per distinguere tra queste situazioni.
.prop
ti permette di impostare una proprietà su un elemento DOM, mentre .attr
consente di impostare un valore di attributo HTML. Se si lavora con un semplice DOM e si imposta la proprietà selezionata elem.checked
, su true
o false
si modifica il valore corrente (ciò che l'utente vede) e il valore restituito tiene traccia dello stato della pagina. elem.getAttribute('checked')
tuttavia restituisce solo lo stato iniziale (e restituisce 'checked'
o undefined
dipende dallo stato iniziale dall'HTML). In 1.6.1+ l'utilizzo di .attr('checked', false)
entrambi fa elem.removeAttribute('checked')
e elem.checked = false
poiché la modifica ha causato molti problemi di compatibilità con le versioni precedenti e non si può davvero dire se si desidera impostare l'attributo HTML o la proprietà DOM. Vedi maggiori informazioni nella documentazione di .prop .
#(selector).prop('checked',true);
problema persiste quando ha seguito il tentativo di impostare uno stato di controllo successivo nello stesso gruppo su uno stato non controllato. Il trucco è impostare il pulsante di opzione su uno stato controllato e lasciare che il gruppo di pulsanti di opzione faccia quello che fa (deselezionare gli altri ...) . Inoltre, la chiamata$(selector).click();
funziona e genererà qualsiasi evento associato.