Come posso verificare se una casella è selezionata?


187

Sto creando un'app Web mobile con jQuery Mobile e desidero verificare se è selezionata una casella di controllo. Ecco il mio codice

<script type=text/javascript>
  function validate(){
    if (remember.checked == 1){
      alert("checked") ;
    } else {
      alert("You didn't check it! Let me check it for you.")
    }
  }
</script>

<input id="remember" name="remember" type="checkbox" onclick="validate()" />

Ma per un motivo o per l'altro non lo esegue.

Per favore aiuto !

---- EDIT ----- Questo è quello che ho per il momento.

<DIV data-role="content" data-theme="g">
    <DIV class=ui-grid-g-login>
        <FORM method=post action=[$=PROBE(266)/] data-theme="C">
            <P>~DATA_ERROR~</P>
            <div id="mail" data-role="fieldcontain">
                <label for="mail">Email:*</label>       
                <input id="mail" name="mail" type="email" />
            </div>
            <div id="pass" data-role="fieldcontain">
                <label for="pass">Paswoord:*</label>        
                <input id="pass" name="pass" type="password" />
            </div>
            <div id="remember" data-role="fieldcontain">
                <label for="remember">Onthoud mij</label>       
                <input id="remember" name="remember" type="checkbox" onclick="validate()" />
            </div>
            <P><INPUT class=btn name=submit value=Login type=submit  onclick="validate()"></P>  
        </FORM>
    </DIV>
</DIV><!-- /content -->

<script type=text/javascript>
function validate(){
    var remember = document.getElementById('remember');
    if (remember.checked){
        alert("checked") ;
    }else{
        alert("You didn't check it! Let me check it for you.")
    }
}
</script>

----MODIFICARE--

Risolto, il problema era che il contenitore di campo era anche chiamato "ricorda"


1
Cosa c'è rememberin questo contesto: if (remember.checked == 1){???
PeeHaa,

In seguito dovrebbe ricordare e-mail e password. È per una pagina di accesso
Steaphann

Quello che sto cercando di dire è che rememberè undefinedin quel contesto. Prova console.log(remember);.
PeeHaa,

Quale versione di HTML stai usando? Non è proprio XHTML, vero?
Lister

Risposte:


272

checkedè booleanproprietà in modo da poterlo utilizzare direttamente in IFcondizione: -

 <script type="text/javascript">
    function validate() {
        if (document.getElementById('remember').checked) {
            alert("checked");
        } else {
            alert("You didn't check it! Let me check it for you.");
        }
    }
    </script>

2
Ricevo sempre il messaggio 'Non l'hai controllato! Fammi controllare per te.
Steaphann,

No, funziona bene per me; Ricevo entrambi i messaggi di avviso.
Pranav,

@Steaphann Hai sostituito la parola 'ricordare' con il tuo ID casella? ... oh, appena notato 2012 0.o ... ps hai dimenticato il punto e virgola dopo la seconda dichiarazione di allarme
josh.thomson,

.. Cosa succede se non voglio che lo controlli per me e voglio solo vedere se è controllato o no?
Mark Kramer,

I punti e virgola @ josh.thomson sono opzionali.
kojow7,

61

Prova questo:

function validate() {
  var remember = document.getElementById("remember");
  if (remember.checked) {
    alert("checked");
  } else {
    alert("You didn't check it! Let me check it for you.");
  }
}

Il tuo script non sa quale sia la variabile remember. Devi prima ottenere l'elemento usando getElementById ().


Dovresti anche consigliare di spogliarlo == 1. Funziona solo a causa di due errori. In realtà il valore è trueo false, dovrebbe solo usareif( remeber.checked )
jAndy

Ricevo sempre il messaggio 'Non l'hai controllato! Fammi controllare per te.
Steaphann,

16

Ciò dovrebbe consentire di verificare se l'elemento id='remember'è'checked'

if (document.getElementById('remember').is(':checked')

3
isnon appartiene all'oggetto elemento DOM
yves amsellem

10
.is()- è una funzione jQuery. .checkedè javascript.
max kaplan

8

Se si utilizza questo modulo per l'app per dispositivi mobili, è possibile utilizzare l'attributo richiesto html5. non vuoi usare alcuna validazione di script java per questo. Dovrebbe funzionare

<input id="remember" name="remember" type="checkbox" required="required" />

5

usare così

<script type=text/javascript>
function validate(){
if (document.getElementById('remember').checked){
          alert("checked") ;
}else{
alert("You didn't check it! Let me check it for you.")
}
}
</script>

<input id="remember" name="remember" type="checkbox" onclick="validate()" />

1
Ricevo sempre il messaggio 'Non l'hai controllato! Fammi controllare per te.
Steaphann,

@ user1251632 Anche WFM. Puoi modificare la tua domanda e mostrare quello che hai adesso? Forse hai fatto un errore di copia e incolla.
Lister

document.getElementById ('remember'). checked == 1 è stato modificato da me prima del tuo commento .. potrebbe essere il problema.
hkutluay,

4

Sto usando questo e funziona per me con Jquery :

jquery:

var checkbox = $('[name="remember"]');

if (checkbox.is(':checked'))
{
    console.log('The checkbox is checked');
}else
{
    console.log('The checkbox is not checked');
}

È molto semplice, ma funziona.

Saluti!


3
    if (document.getElementById('remember').checked) {
        alert("checked");
    }
    else {
        alert("You didn't check it! Let me check it for you.");
    }

3

Usa questo codice semplice qui sotto: https://jsfiddle.net/Divyesh_Patel/v7a4h3kr/7/

<input type="checkbox" id="check">
<a href="#" onclick="check()">click</a>
<button onclick="check()">button</button>
<script>
 function check() {
    		if (document.getElementById('check').checked) {
            alert("checked");
        } else {
            alert("Not checked.");
        }
       
    }

</script>


2

remembernon è definito ... e la checkedproprietà è un valore booleano, non un numero.

function validate(){
    var remember = document.getElementById('remember');
    if (remember.checked){
        alert("checked") ;
    }else{
        alert("You didn't check it! Let me check it for you.")
    }
}

2

Questo dovrebbe funzionare

    function validate() {
        if ($('#remeber').is(':checked')) {
            alert("checked");
        } else {
            alert("You didn't check it! Let me check it for you.");
        }
    }

1

Puoi provare questo:

if ($(#remember).is(':checked')){
   alert('checked');
}else{
   alert('not checked')
}

0

Usa questo codice semplice qui sotto: https://jsfiddle.net/Divyesh_Patel/v7a4h3kr/7/

<input type="checkbox" id="check">
<a href="#" onclick="check()">click</a>
<button onclick="check()">
button
</button>
<script>
 function check() {
    		if (document.getElementById('check').checked) {
            alert("checked");
        } else {
            alert("You didn't check it! Let me check it for you.");
        }
       
    }

</script>


-1

Prova questo

<script type="text/javascript">
window.onload = function () {
    var input = document.querySelector('input[type=checkbox]');

    function check() {
        if (input.checked) {
            alert("checked");
        } else {
            alert("You didn't check it.");
        }
    }
    input.onchange = check;
    check();
}
</script>

-1

È inoltre possibile utilizzare i metodi JQuery per eseguire ciò:

<script type="text/javascript">
if ($('#remember')[0].checked) 
{
 alert("checked");
}
</script>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.