javascript - validacion - Comprobando si una casilla está marcada con jQuery
validar formulario javascript html5 (20)
$ (''input [id = ans]''). is ('': checked'');
Si la casilla de verificación está marcada, solo necesito obtener el valor como 1; de lo contrario, debo obtenerlo como 0. ¿Cómo hago esto con jQuery?
$("#ans").val()
siempre me dará un derecho en este caso:
<input type="checkbox" id="ans" value="1" />
Hay varias opciones hay como ...
1. $("#ans").is('':checked'')
2. $("#ans:checked")
3. $(''input:checkbox:checked'');
Si todas estas opciones devuelven verdadero, entonces puede establecer el valor de forma acorde.
He encontrado el mismo problema antes, espero que esta solución te pueda ayudar. Primero, agregue un atributo personalizado a sus casillas de verificación:
<input type="checkbox" id="ans" value="1" data-unchecked="0" />
escribe una extensión jQuery para obtener valor:
$.fn.realVal = function(){
var $obj = $(this);
var val = $obj.val();
var type = $obj.attr(''type'');
if (type && type===''checkbox'') {
var un_val = $obj.attr(''data-unchecked'');
if (typeof un_val===''undefined'') un_val = '''';
return $obj.prop(''checked'') ? val : un_val;
} else {
return val;
}
};
use el código para obtener el valor de la casilla de verificación:
$(''#ans'').realVal();
puedes probar here
La respuesta de Stefan Brinkmann es excelente, pero incompleta para los principiantes (omite la asignación de variables). Solo para aclarar:
// this structure is called a ternary operator
var cbAns = ( $("#ans").is('':checked'') ) ? 1 : 0;
Funciona así:
var myVar = ( if test goes here ) ? ''ans if yes'' : ''ans if no'' ;
Ejemplo:
var myMath = ( 1 > 2 ) ? ''yes'' : ''no'' ;
alert( myMath );
Alertas ''no''
Si esto es útil, por favor, vote por favor la respuesta de Stefan Brinkmann.
Primero verifica que el valor esté marcado.
$("#ans").find("checkbox").each(function(){
if ($(this).prop(''checked'')==true){
var id = $(this).val()
}
});
Si no, establece el valor 0
Prueba esto
$(''input:checkbox:checked'').click(function(){
var val=(this).val(); // it will get value from checked checkbox;
})
Aquí la bandera es verdadera si está marcada de otra manera falsa
var flag=$(''#ans'').attr(''checked'');
De nuevo esto hará cheked.
$(''#ans'').attr(''checked'',true);
Puede obtener valor (verdadero / falso) por estos dos métodos
$("input[type=''checkbox'']").prop("checked");
$("input[type=''checkbox'']").is(":checked");
Puedes probar esto:
$(''#studentTypeCheck'').is(":checked");
Recientemente he visto un caso en el que he necesitado verificar el valor de la casilla de verificación cuando el usuario hizo clic en el botón. La única forma correcta de hacerlo es usar el atributo prop()
.
var ansValue = $("#ans").prop(''checked'') ? $("#ans").val() : 0;
esto funcionó en mi caso, tal vez alguien lo necesite.
Cuando probé .attr('':checked'')
, regresó checked
pero quería un valor booleano y .val()
devolvía un valor de atributo.
Si quiere valor entero de verificado o no intente:
$ ("# ans: check"). longitud
Simplemente use $(selector).is('':checked'')
Devuelve un valor booleano.
También puedes usar:
$("#ans:checked").length == 1;
Use .is('':checked'')
para determinar si está o no verificado, y luego establezca su valor en consecuencia.
Utilizar:
$("#ans option:selected").val()
$("#id").prop(''checked'') === true ? 1 : 0;
$("#ans").attr(''checked'')
le dirá si está marcada. También puede usar un segundo parámetro verdadero / falso para marcar / desmarcar la casilla de verificación.
$("#ans").attr(''checked'', true);
Por comentario, use prop
lugar de attr
cuando esté disponible. P.ej:
$("#ans").prop(''checked'')
$(''input:checkbox:checked'').val(); // get the value from a checked checkbox
<input type="checkbox" id="ans" value="1" />
Jquery: var test= $("#ans").is('':checked'')
y devuelve verdadero o falso.
En su función:
$test =($request->get ( ''test'' )== "true")? ''1'' : ''0'';
// use ternary operators
$("#ans").is('':checked'') ? 1 : 0;
function chkb(bool){
if(bool)
return 1;
return 0;
}
var statusNum=chkb($("#ans").is('':checked''));
statusNum será igual a 1 si la casilla está marcada y 0 si no lo está.
EDITAR: También puede agregar el DOM a la función.
function chkb(el){
if(el.is('':checked''))
return 1;
return 0;
}
var statusNum=chkb($("#ans"));