Как я могу проверить, если флажок установлен? - PullRequest
156 голосов
/ 27 марта 2012

Я создаю мобильное веб-приложение с помощью jQuery Mobile и хочу проверить, установлен ли флажок.Вот мой код.

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

Но по тем или иным причинам он не выполняется.

Пожалуйста, помогите!

---- EDIT ---- Это то, что у меня есть на данный момент.

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

---- РЕДАКТИРОВАТЬ -

Решено, проблема заключалась в том, что полевой контейнер был также назван «запомнить»

Ответы [ 10 ]

243 голосов
/ 27 марта 2012

checked - это свойство boolean, поэтому вы можете напрямую использовать его в состоянии IF: -

 <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>
51 голосов
/ 27 марта 2012

Попробуйте это:

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

Ваш скрипт не знает, что такое переменная remember. Сначала вам нужно получить элемент с помощью getElementById ().

13 голосов
/ 25 июля 2014

Это должно позволить вам проверить, является ли элемент с id='remember' 'checked'

if (document.getElementById('remember').is(':checked')
8 голосов
/ 08 июня 2012

Если вы используете эту форму для мобильного приложения, вы можете использовать обязательный атрибут html5. Вы не хотите использовать какие-либо проверки сценариев Java для этого. Должно работать

<input id="remember" name="remember" type="checkbox" required="required" />
5 голосов
/ 27 марта 2012

используйте вот так

<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()" />
4 голосов
/ 13 июня 2018

Я использую это, и оно работает для меня с Jquery :

Jquery:

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

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

Очень просто, но работа.

С уважением!

3 голосов
/ 15 мая 2013
    if (document.getElementById('remember').checked) {
        alert("checked");
    }
    else {
        alert("You didn't check it! Let me check it for you.");
    }
2 голосов
/ 27 марта 2012

remember не определено ... и свойство checked является логическим значением, а не числом.

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.")
    }
}
0 голосов
/ 11 мая 2018

Вы также можете использовать методы JQuery для этого:

<script type="text/javascript">
if ($('#remember')[0].checked) 
{
 alert("checked");
}
</script>
0 голосов
/ 18 октября 2013

Попробуйте

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