2012-06-07 11 views
21

quiero llegar casilla con valor specfic y que sea comprobado ..Obtener casilla con valor específico

hago como esto

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

y aquí está el 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"/>​ 

aquí está a demo del problema

Respuesta

67

Puede usar Attribute Equals Selector [name="value"] para obtener las casillas de verificación wi el valor particular. También use prop() en lugar de attr(), ya que es el camino recomendado por jQuery doc.

Live Demo

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

o

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

Descripción: Selecciona elementos que tienen el atributo especificado con un valor exactamente igual a un cierto valor, jQuery doc.

También puede hacerlo utilizando attr() pero prop es más apropiado para las propiedades booleanas.

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

A partir de jQuery 1.6, el método .attr() devuelve indefinido para los atributos que no han sido establecidos. Para recuperar y cambiar las propiedades de DOM como el marcado, seleccionado, o discapacitado estado de los elementos de formulario, utilice el método .prop(), jQuery doc

Editar, se le preguntó en los comentarios, "¿Cómo se vería como la respuesta/find-expresión con valores complejos, como value = "Smith, David"

puede incluir ese tipo de valores como Smith, David en comillas simples. incluso puede utilizar caracteres que utiliza jQuery como #,., $ etc, ver el fiddle actualizado here.

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

Funciona, gracias – palAlaa

+1

De nada – Adil

+0

Me ha robado media hora: el punto y coma en el segundo ejemplo de código es una especie de maldad. Cuando copias toda la línea ('$ (" input [type = checkbox] [value = 5] "). Prop (" checked ", true);') y la pegas en tu script, SublimeText + JSHint (en mi caso) lanzará el error 'Inesperado'. El navegador ** deja de ejecutar ** su código con el error 'Token Inesperado ILEGAL'. Eliminar el punto y coma y reemplazarlo por uno "fresco" me ayudó (imagina mi desesperación debugging ...) Supongo que hay un ascii-char oculto o algo –

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

Si desea utilizarlo para diferentes valores a continuación, hacer que sea genérico como siguiente:

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


checkWithValue(5);​ 

DEMO

1

Funciona también con la práctica cuadrado

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

Ésta era la única manera de que pudiera conseguir que esto funcione. Buscando una casilla de verificación en una mesa.

2

Tenía valores dinámicos que necesitaban enlazarse. Esto es lo que funcionó para mí:

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); 
} 

Espero que ayude a alguien.

Cuestiones relacionadas