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”

Steaphann
źródło
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>
Pranaw
źródło
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 ().

Clem
źródło
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')
Piotr
źródło
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" />
shenbaga kannan
źródło
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()" />
hkutluay
źródło
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!

Radames E. Hernandez
źródło
3
    if (document.getElementById('remember').checked) {
        alert("checked");
    }
    else {
        alert("You didn't check it! Let me check it for you.");
    }
Lakshmana Kumar
źródło
3

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

</script>

Divyesh
źródło
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.")
    }
}
Quentin
źródło
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.");
        }
    }
Aditya
źródło
1

Możesz spróbować:

if ($(#remember).is(':checked')){
   alert('checked');
}else{
   alert('not checked')
}
Donminick Bautista
źródło
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>

Divyesh
źródło
-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>

źródło
-1

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

<script type="text/javascript">
if ($('#remember')[0].checked) 
{
 alert("checked");
}
</script>
Suprija
źródło