Wie kann ich überprüfen, ob ein Kontrollkästchen aktiviert ist?


186

Ich erstelle eine mobile Web-App mit jQuery Mobile und möchte überprüfen, ob ein Kontrollkästchen aktiviert ist. Hier ist mein Code.

<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()" />

Aber aus irgendeinem Grund wird es nicht ausgeführt.

Bitte helfen Sie!

---- EDIT ----- Das habe ich momentan.

<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>

----BEARBEITEN--

Das Problem wurde behoben, indem der Feldcontain auch als "Erinnern" bezeichnet wurde.


1
Was ist rememberin diesem Zusammenhang: if (remember.checked == 1){???
PeeHaa

Später sollte es sich E-Mail und Passwort merken. Es ist für eine Anmeldeseite
Steaphann

Was ich versuche zu sagen ist , dass rememberist undefinedin diesem Zusammenhang. Versuchen Sie es console.log(remember);.
PeeHaa

Welche HTML-Version verwenden Sie? Es ist nicht wirklich XHTML, oder?
Herr Lister

Antworten:


271

checkedist booleanEigentum, so dass Sie es direkt in folgenden IFBedingungen verwenden können:

 <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
Ich bekomme immer die Nachricht 'Du hast es nicht überprüft! Lass es mich für dich prüfen.'
Steaphann

Nein, es funktioniert gut für mich; Ich erhalte beide Warnmeldungen.
Pranav

@Steaphann Haben Sie das Wort "Erinnern" durch Ihre Kontrollkästchen-ID ersetzt? ... oh, gerade bemerkt 2012 0.o ... ps Sie haben das Semikolon nach der 2. Warnmeldung vergessen
josh.thomson

..Was ist, wenn ich nicht möchte, dass es für mich überprüft wird und ich nur sehen möchte, ob es überprüft wird oder nicht?
Mark Kramer

@ josh.thomson Semikolons sind optional.
Kojow7

60

Versuche dies:

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.");
  }
}

Ihr Skript weiß nicht, was die Variable rememberist. Sie müssen das Element zuerst mit getElementById () abrufen.


Sie sollten auch raten, das zu entfernen == 1. Es funktioniert nur wegen zweier Fehler. Eigentlich ist der Wert trueoder false, er sollte nur verwendenif( remeber.checked )
jAndy

Ich bekomme immer die Nachricht 'Du hast es nicht überprüft! Lass es mich für dich prüfen.'
Steaphann

16

Auf diese Weise können Sie überprüfen, ob das Element mit id='remember'is ist'checked'

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

3
isgehört nicht zum DOM-Element Objekt
yves amsellem

10
.is()- ist eine jQuery-Funktion. .checkedist Javascript.
Max Kaplan

8

Wenn Sie dieses Formular für mobile Apps verwenden, können Sie das erforderliche Attribut html5 verwenden. Sie möchten hierfür keine Java-Skriptüberprüfung verwenden. Es sollte funktionieren

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

5

benutze so

<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
Ich bekomme immer die Nachricht 'Du hast es nicht überprüft! Lass es mich für dich prüfen.'
Steaphann

@ user1251632 WFM auch. Können Sie Ihre Frage bearbeiten und zeigen, was Sie jetzt haben? Möglicherweise haben Sie einen Fehler beim Kopieren und Einfügen gemacht.
Herr Lister

document.getElementById ('Remember') .check == 1 wurde von mir vor Ihrem Kommentar geändert. Möglicherweise liegt das Problem darin.
Hkutluay

4

Ich benutze dies und es funktioniert für mich mit Jquery :

Jquery:

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

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

Ist sehr einfach, aber Arbeit.

Grüße!


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

2

rememberist undefiniert ... und die checkedEigenschaft ist ein Boolescher Wert, keine Zahl.

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

Verwenden Sie den folgenden einfachen Code: 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

Das sollte funktionieren

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

1

Sie können dies versuchen:

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

0

Verwenden Sie den folgenden einfachen Code: 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

Versuche dies

<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

Sie können auch JQuery-Methoden verwenden, um dies zu erreichen:

<script type="text/javascript">
if ($('#remember')[0].checked) 
{
 alert("checked");
}
</script>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.