jquery - casilla de verificación siempre está "activado"
asp.net-mvc-3 uploadify (8)
Acabo de tener el mismo problema y encontré esta solución:
if($("input[name=''yourcheckbox'']").is('':checked'')) {
console.log(''chb checked'');
} else {
console.log(''chb not checked'');
}
Hy!
Cuando Uploadify envía el archivo a la acción, necesito saber si el checbox está marcado o no, así que lo hice:
$(''#uploaded'').uploadify({
''uploader'': ''/uploadify.swf'',
''cancelImg'': ''/cancel.png'',
''script'': ''/Interaction/Upload'',
''multi'': true,
''auto'': false,
''method'': ''post'',
''scriptData'': {''Checkbox'': $(''#checkbox'').val()},
});
Pero siempre tengo un valor "on". No importa si se marca o no.
¿Alguien puede ayudar? Tks.
ACTUALIZAR:
Me di cuenta de que uploadify está recibiendo la casilla de verificación cuando la página está cargada. Esto significa que si cambio la casilla de verificación (o cualquier otro tipo de entrada), la uploadify obtendrá el valor inicial, en este caso, "checkbox = false".
¿Cómo puedo enviar un formulario con uploadify?
Tks.
Cambio:
$(''#checkbox'').val()
a
$(''#checkbox'').attr(''checked'')
El valor de una casilla de verificación siempre está ''activado''. El formulario HTML envía el valor al servidor solo si la casilla está marcada. Si la casilla no está marcada, entonces el parámetro de solicitud estará ausente. Esta semántica es aparentemente para minimizar las diferencias entre casillas de verificación y botones de radio.
El formulario HTML implementa la siguiente semántica:
if ($(''#mycheckbox'').is('':checked'')) {
payload[''mycheckbox''] = $(''#mycheckbox'').val();
}
Puede imitar esta semántica en Ajax o enviar la marca ''marcada'' directamente de la siguiente manera:
payload[''mycheckbox''] = $(''#mycheckbox'').is('':checked'');
Recomiendo imitar la semántica del formulario HTML. Independientemente de lo que haga el cliente, recomendaría lo siguiente en el código del servidor:
if mycheckbox param exists and its value is either ''true'' or ''on'' { // pseudo code of course
// mycheckbox is checked
} else {
// mycheckbox is unchecked
}
Espero que esta explicación ayude.
Hay una manera bastante útil de verificar todas estas propiedades de elementos como disabled
, checked
, etc. con la función prop
. Esto también lo convierte en booleano:
$(''#checkbox'').prop(''checked''); // -> true/false
$(''#checkbox'').prop(''disabled''); // -> true/false
Prueba esto
$(''#checkbox'').is('':checked'')
Puedes dar
if (jQuery (this) .attr (''marcado'')) {// u tiene que usar este selector de acuerdo con su función, puede ser .click .live o de lo contrario ...
Gracias
Utilizar:
$(''#checkbox'').attr(''checked'')
intente $(''#checkbox'').is('':checked'')