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.