2011-03-11 5 views
7

Al momento sto utilizzando il seguente bit di codice per ottenere solo i valori delle caselle di controllo, tuttavia sono sicuro che c'è un modo più semplice per farlo.JQuery ottiene il valore della casella di controllo solo se selezionato

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 = ''; 

Esiste?

Marvelous,

+2

Punto minore: i nomi delle variabili con hypens sono illegali in JS. Il problema è che "OPTtags-adventure-diving" potrebbe essere interpretato come "OPTtags" minus "adventure" minus "diving". Meglio usare camelCase o underscore. – johnhunter

+0

@johnhunter Punto preso, –

risposta

8

non ho controllato questo, ma come su

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

Quindi la variabile sarà undefined o il valore.

+2

Non trascurare il sottile (anche se citato da Chris), il fatto che questo ritornerà "indefinito" quando la casella non è selezionata. –

3

Questo è un po 'più semplice:

var OPTtags-adventure-diving = $('#OPTtags-adventure-diving:checked').length ? $('#OPTtags-adventure-diving').val() : ''; 

Esempio - http://jsfiddle.net/infernalbadger/SfcjG/

1

Solo un altro modo:

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

provare questo,

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