Jak mogę sprawdzić, czy pole wyboru jest zaznaczone?


186

Tworzę mobilną aplikację internetową z jQuery Mobile i chcę sprawdzić, czy pole wyboru jest zaznaczone. Oto mój kod.

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

Ale z jakiegoś powodu nie wykonuje tego.

Proszę pomóż !

---- EDYCJA ----- To właśnie mam na ten moment.

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

----EDYTOWAĆ--

Rozwiązany problem polegał na tym, że pole zawiera również nazwę „pamiętaj”


1
Co jest rememberw tym kontekście: if (remember.checked == 1){???
PeeHaa

Później powinien pamiętać adres e-mail i hasło. To jest strona logowania
Steaphann

Próbuję powiedzieć, że rememberjest undefinedw tym kontekście. Spróbować console.log(remember);.
PeeHaa

Jakiej wersji HTML używasz? To nie jest tak naprawdę XHTML, prawda?
Pan Lister

Odpowiedzi:


271

checkedjest booleanwłasnością, więc możesz bezpośrednio z niej korzystać pod IFwarunkiem:

 <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
Zawsze pojawia się komunikat „Nie sprawdziłeś tego! Sprawdzę to dla Ciebie.'
Steaphann,

Nie działa mi dobrze; dostaję oba komunikaty ostrzegawcze.
Pranav

@ Steafann Czy zastąpiłeś słowo „pamiętaj” swoim identyfikatorem pola wyboru? ... och, właśnie zauważyłem 2012 0.o ... ps zapomniałeś średnika po drugim komunikacie ostrzegawczym
josh.thomson

..Co, jeśli nie chcę, żeby to sprawdził dla mnie i chcę tylko sprawdzić, czy jest zaznaczone, czy nie?
Mark Kramer

@ josh.thomson średniki są opcjonalne.
kojow7,

61

Spróbuj tego:

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

Twój skrypt nie wie, co to rememberjest zmienna . Najpierw musisz pobrać element za pomocą getElementById ().


Powinieneś także poradzić, aby to rozebrać == 1. Działa tylko z powodu dwóch błędów. W rzeczywistości wartość wynosi truelub falsepowinien po prostu użyćif( remeber.checked )
jAndy

Zawsze pojawia się komunikat „Nie sprawdziłeś tego! Sprawdzę to dla Ciebie.'
Steaphann,

16

Powinno to umożliwić sprawdzenie, czy element z id='remember'jest'checked'

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

3
isnie należy do obiektu elementu DOM
yves amsellem

10
.is()- jest funkcją jQuery. .checkedjest javascript.
max kaplan

8

Jeśli używasz tego formularza do aplikacji mobilnej, możesz użyć wymaganego atrybutu html5. nie chcesz używać do tego żadnego sprawdzania poprawności skryptu Java. To powinno działać

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

5

używać w ten sposób

<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
Zawsze pojawia się komunikat „Nie sprawdziłeś tego! Sprawdzę to dla Ciebie.'
Steaphann

@ user1251632 WFM też. Czy możesz edytować swoje pytanie i pokazać, co masz teraz? Być może popełniłeś błąd kopiowania i wklejania.
Pan Lister

document.getElementById ('pamiętaj'). zaznaczone == 1 został zmieniony przeze mnie przed twoim komentarzem .. może to być problem.
hkutluay

4

Używam tego i działa dla mnie z Jquery :

Jquery:

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

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

Jest bardzo prosty, ale działa.

Pozdrowienia!


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


2

rememberjest niezdefiniowany… a checkedwłaściwość jest wartością logiczną, a nie liczbą.

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

To powinno działać

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


0

Użyj tego prostego kodu: 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

Spróbuj tego

<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

Możesz również użyć metod JQuery, aby to osiągnąć:

<script type="text/javascript">
if ($('#remember')[0].checked) 
{
 alert("checked");
}
</script>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.