2012-06-07 21 views
21

voglio ottenere casella di controllo con un valore specfic e renderlo controllato ..Ottenere casella di controllo con il valore specifico

faccio come questo

$(":checkbox").filter({"value":5}).attr("checked","true");​ 

e qui è la html

​<input type="checkbox" name="priv"​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ value="1"​​​​​​​​​​​​​​​​​/> 
<input type="checkbox" name="priv" value="2"/> 
<input type="checkbox" name="priv" value="3"/> 
<input type="checkbox" name="priv" value="4"/> 
<input type="checkbox" name="priv" value="5"/> 
<input type="checkbox" name="priv" value="6"/> 
<input type="checkbox" name="priv" value="7"/> 
<input type="checkbox" name="priv" value="8"/>​ 

ecco a demo del problema

risposta

67

È possibile utilizzare Attribute Equals Selector [name="value"] per ottenere le caselle di controllo con il valore particolare Utilizzare anche prop() anziché attr() in modo consigliato jQuery doc.

Live Demo

$(":checkbox[value=4]").prop("checked","true"); 

o

$("input[type=checkbox][value=5]").prop("checked",true); 

Descrizione: seleziona gli elementi che hanno l'attributo specificato con un valore esattamente uguale ad un certo valore, jQuery doc.

È anche possibile farlo Utilizzare attr() ma prop è più appropriato per le proprietà booleane.

$(":checkbox[value=4]").attr("checked","true"); 

Al jQuery 1.6, il metodo .attr() restituisce definito per attributi che non sono stati impostati. Per recuperare e modificare le proprietà DOM come ad esempio il controllato, selezionato, o lo stato disattivato di elementi del modulo, utilizzare il metodo .prop(), jQuery doc

Modifica, ha chiesto nei commenti, "Come sarebbe guardare come la risposta/trovare espressione con valori complessi, come value = "Smith, David"

È possibile racchiudere quel tipo di valori come Smith, David su singoli apici. È anche possibile utilizzare caratteri utilizzata da jQuery come #,., $ ecc., vedi il violino aggiornato here.

$("input[type=checkbox][value='#Smith, David$']").attr("checked","true"); 
+0

Funziona, grazie – palAlaa

+1

Prego – Adil

+0

Mi ha rubato mezz'ora: il punto e virgola nel secondo esempio di codice è una specie di male. Quando copi l'intera riga ('$ (" input [type = checkbox] [value = 5] "). Prop (" checked ", true);') e lo incolla nel tuo script, SublimeText + JSHint (nel mio caso) genererà l'errore "Inaspettato". Il browser ** interrompe l'esecuzione ** del tuo codice con l'errore 'Inaspettato token ILLEGAL'. Cancellare il punto e virgola e rimpiazzarlo con un "fresco" mi ha aiutato (immagina la mia disperazione dovuta alla desolazione ...) Immagino che ci sia un ascii-char nascosto o sth –

0
$(":checkbox[value=5]").attr("checked",true);​​​ 
3
$("input:checkbox[value='5']").attr("checked","true") 
7
$(":checkbox").filter(function() { 
    return this.value == '5'; 
}).prop("checked","true");​ 

DEMO

Se si desidera utilizzarlo per diversi valori poi ne fanno generico come segue:

function checkWithValue(val) { 
    $(":checkbox").filter(function() { 
     return this.value == val; 
    }).prop("checked", "true"); 
} 


checkWithValue(5);​ 

DEMO

1

Funziona anche con la pratica piazza

$(":checkbox").filter(["value":5]).prop("checked","true"); 
0
$("#catalogTBL").find("input[type=checkbox][value='snet']").prop("checked", true); 

Questo era l'unico modo ho potuto ottenere questo lavoro. Alla ricerca di una casella di controllo in una tabella.

2

Avevo un valore dinamico che doveva essere ricollegato. Questo è ciò che ha funzionato per me:

for (var i = 0, len = value.length; i < len; i++) { 
    $("#form-name").find("input[type=checkbox][name='fName']").filter(function() { 
    return this.value == values[i]; 
    }).prop("checked", true); 
} 

La speranza che aiuta qualcuno fuori.

Problemi correlati