2010-10-27 13 views
7

Quiero comprobar si la casilla de verificación está marcada o no usando jquery. Quiero verificarlo en el evento onclick de la casilla de verificación.compruebe si la casilla de verificación está marcada o no usando jquery

<input type="checkbox" onclick="javascript:check_action();" id="Public(Web)" checked="checked" value="anyone" name="data[anyone]"> 

¿Es posible? ¿Cómo?

Gracias.

+1

No utilice 'javascript:' en el caso de los atributos manejador. Está mal y solo funciona porque resulta ser una sintaxis válida de JavaScript. –

+0

id = "Público (web)" no es un nombre de identificación válido. Los tokens de ID y NAME deben comenzar con una letra ([A-Za-z]) y pueden ir seguidos de cualquier cantidad de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_") , dos puntos (":") y puntos ("."). –

+1

@FutureKode: en HTML 4, sí. En HTML 5, no. Pero en el futuro previsible, tienes toda la razón –

Respuesta

8

En primer lugar, no utilice javascript: en atributos controlador de eventos. Está mal y solo funciona porque resulta ser una sintaxis válida de JavaScript. En segundo lugar, su id no es válido. Los paréntesis no están permitidos en el atributo id (en HTML 4 como mínimo, HTML 5 levanta esta restricción). En tercer lugar, si está utilizando jQuery, probablemente tenga sentido usar su método click() para manejar el evento click, aunque tenga en cuenta que cambiarlo significará que si el usuario hace clic en la casilla antes de que el documento se haya cargado, entonces su script no lo manejará

<input type="checkbox" id="Public_Web" checked value="anyone" 
    name="data[anyone]"> 

$(document).ready(function() { 
    $("#Public_Web").click(function() { 
     if (this.checked) { 
      alert("Checked!"); 
     } 
    }); 
}); 
+0

Oye, esto funcionó. Gracias por esta buena. Gracias a todos los que respondieron por esto. – gautamlakum

4

Puede hacer como esto

$('#checkbox_id').click(function(){ 
    alert(this.checked); 
}); 

O usando is() método:

$('#checkbox_id').click(function(){ 
    if ($(this).is(':checked')){ 
    alert('Checked'); 
    } 
    else{ 
    alert('Not Checked'); 
    } 
}); 

Si usted quiere hacer esto para todos casilla de verificación dentro de un formulario, puede utilizar el selector :checkbox filtro como éste :

$('#form_id :checkbox').click(function(){ 
    alert(this.checked); 
}); 

Asegúrese de envolver su código en listo manejador:

$(function(){ 
    // code.... 
}); 
+0

Intenté esto. pero no funcionó. – gautamlakum

1

En primer lugar, enlazar el evento en etiquetas de secuencia de comandos, en lugar de en línea. Esto es mucho más fácil de seguir y hace que su HTML sea mucho más legible. Luego puede usar el selector jQuery :checked para determinar si la casilla de verificación está marcada. Luego puede usar el atributo checked del elemento.

$(document).ready(function(){ 
    $('#Public(Web)').click(function(){ 
     if (this.checked) { 
      // do your code here 
     } 
    }); 
}); 
+1

En serio, no. Para verificar si una casilla de verificación está marcada, '$ (this) .is (': checked')' es simplemente una locura. 'this.checked' es mejor en todo sentido concebible. –

+0

Sí. Perdónenme, JS dioses, porque he pecado ... – lonesomeday

+0

Sarcasmo, supongo? '$ (this) .is (': checked')' es una de mis preocupaciones, como un síntoma de lo que representa. ¿Necesito elaborar? –

0

Aquí es otro ejemplo, el aviso en lugar de utilizar un evento de clic en el propio elemento i preferiría usar un oyente, pero quitar los soportes del ello, se le dará un tiempo difícil en algunos navegadores.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html><head> 
<input type="checkbox" id="PublicWeb" checked="checked" value="anyone" name="data[anyone]" /> 
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.min.js'></script> 
<script> 
$(document).ready(function(){ 
    $('#PublicWeb').click(function(){ 
     if($(this).is(':checked')){ 
      alert("its checked alright"); 
     } 
    }); 
}); 
</script> 
</head><body></body></html> 
8

También puede utilizar este

if($("#checkbox_id").is(':checked')) 
2

hay varias opciones están ahí como ....

1. if($("#ans").is('checked')) 
2. if($("#ans:checked")) 
3. if($('input:checkbox:checked')) 
1

intenta esto:

if(!$('#elementid').is(':checked')){ 
    alert('Not checked'); 
}else{ 
    alert('checked'); 
} 
1

Usted puede hacer esto utilizando is() método:

$('##Public_Web').click(function(){ 
    if ($(this).is(':checked')){ 
    alert('Checked'); 
    } 
    else{ 
    alert('Not Checked'); 
    } 
}); 

Si usted quiere hacer esto para todos casilla de verificación dentro de un formulario, puede utilizar la :checkbox selector de filtro:

$('#form_id :checkbox').click(function(){ 
    alert(this.checked); 
}); 

Asegúrese de envolver su código en el documento manejador de listas:

$(document).ready(function() { 
     // code.... 
    }); 
Cuestiones relacionadas