2011-03-11 7 views
7

Por el momento estoy usando el siguiente bit de código para obtener solo los valores de las casillas marcadas, sin embargo, estoy seguro de que hay una manera más fácil de hacerlo.JQuery obtener el valor de la casilla de verificación solo si está marcado

if ($('#OPTtags-adventure-diving').is(':checked')) { 
     var OPTtags-adventure-diving = $('#OPTtags-adventure-diving').val() 
    } else var OPTtags-adventure-diving = ''; 

    if ($('#OPTtags-master-scuba-diver').is(':checked')) { 
     var OPTtags-master-scuba-diver = $('#OPTtags-master-scuba-diver').val() 
    } else var OPTtags-master-scuba-diver = ''; 

¿Hay?

maravilloso,

+2

Punto secundario: los nombres de variable con hiperes son ilegales en JS. El problema es que 'OPTtags-adventure-diving' podría interpretarse como' OPTtags' menos 'adventure' menos' diving'. Mejor usar camelCase o guión bajo. – johnhunter

+0

@johnhunter Punto tomado, –

Respuesta

8

No he comprobado esto, pero ¿qué hay de

var OPTtags-master-scuba-diver = $('#OPTtags-adventure-diving:checked').val()

Entonces la variable habrá undefined o el valor.

+2

No pase por alto el sutil (aunque mencionado por Chris) hecho de que esto volverá "indefinido" cuando la casilla de verificación no esté marcada. –

1

Sólo otra manera:

var $chkbox = $('#OPTtags-adventure-diving'), 
    OPTtags-adventure-diving = $chkbox.is(':checked') ? $chkbox.val() : ''; 
0

probar esto,

var OPTtags-master-scuba-diver = $('#OPTtags-adventure-diving:checked').val() || '': 
-1
$('#OPTtags-adventure-diving').prop('checked') ? $('#OPTtags-adventure-diving').val() : '' 
Cuestiones relacionadas