Как я могу проверить, установлен ли флажок?

#javascript #html #jquery #validation #checkbox

Вопрос:

Я создаю мобильное веб-приложение с помощью 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()" />
 

Но по той или иной причине он его не выполняет.

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

—-РЕДАКТИРОВАТЬ—— Это то, что у меня есть на данный момент.

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

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

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

Комментарии:

1. Что remember в этом контексте: if (remember.checked == 1){ ???

2. Позже он должен запомнить адрес электронной почты и пароль. Это для страницы входа в систему

3. То, что я пытаюсь сказать, remember находится undefined в этом контексте. Попробуй console.log(remember); .

4. Какую версию HTML вы используете? На самом деле это не XHTML, не так ли?

5. Как упоминал @Steaphann в правке, код не работал, потому что в html есть два элемента с одинаковым идентификатором. <div id="remember" data-role="fieldcontain"> и. <input id="remember" name="remember" type="checkbox" onclick="validate()" /> Ни один из ответов не затронул эту проблему.

Ответ №1:

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>
 

Комментарии:

1. Я всегда получаю сообщение: «Ты не проверил это! Позвольте мне проверить это для вас.’

2. Нет, у меня все работает нормально ; я получаю оба предупреждающих сообщения.

3. @Steaphann Вы заменили слово «запомнить» своим идентификатором флажка? …о, только что заметил, что 2012 0.о …p.s. вы забыли точку с запятой после 2-го заявления о предупреждении

4. ..Что, если я не хочу, чтобы он проверял это для меня, и я просто хочу посмотреть, проверено это или нет?

5. @josh.thomson точки с запятой необязательны.

Ответ №2:

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

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

Комментарии:

1. Вам также следует посоветовать снять это == 1 . Он работает только из-за двух ошибок. На самом деле значение true или false , он должен просто использовать if( remeber.checked )

2. Я всегда получаю сообщение: «Ты не проверил это! Позвольте мне проверить это для вас.’

Ответ №3:

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

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

Комментарии:

1. is не принадлежит объекту элемента DOM

2. .is() — это функция jQuery. .checked это javascript.

3. Почему у этого так много голосов? Между отсутствующей скобкой и смесью между ванилью и jquery. Ответ ужасен, Это либо $('#remember').is(':checked') или document.getElementById('remember').checked , но смешивание никогда не сработает

Ответ №4:

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

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

Ответ №5:

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

 <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. Я всегда получаю сообщение: «Ты не проверил это! Позвольте мне проверить это для вас.’

2. @user1251632 WFM тоже. Можете ли вы отредактировать свой вопрос и показать, что у вас есть сейчас? Возможно, вы допустили ошибку копирования и вставки.

3. document.getElementById («запомнить»). проверено == 1 было изменено мной до вашего комментария.. возможно, в этом проблема.

Ответ №6:

Используйте этот простой код ниже: 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> 

Ответ №7:

Это должно сработать

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

Комментарии:

1. Работал на меня! По какой-то причине у меня возникли проблемы с тем, что должно быть так просто.

Ответ №8:

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

Jquery:

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

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

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

С уважением!

Ответ №9:

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

Ответ №10:

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

Ответ №11:

 //HTML
<input type="checkbox" id="someID">
 
 // JavaScript
const someCheckbox = document.getElementById('someID');

someCheckbox.addEventListener('change', e => {
  if(e.target.checked === true) {
    console.log("Checkbox is checked - boolean value: ", e.target.checked)
  }
if(e.target.checked === false) {
    console.log("Checkbox is not checked - boolean value: ", e.target.checked)
  }
});
 

знать больше

Ответ №12:

remember Переменная не определена. так что попробуй вот так:

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

Ответ №13:

Вы можете использовать этот простой и эффективный код, используя чистый JS и jQuery.

использование функции проверки в качестве onclick attr

 function validate(el) {
    if (el.checked) {
        alert("checked")
    } else {
        alert("unchecked")
    }
} 
 <input id="remember" name="remember" type="checkbox" onclick="validate(this)" /> 

или

using pure JS

 document.addEventListener("DOMContentLoaded", function(event) { 
    //using pure Js code
    let chk = document.getElementById("remember");
    if (chk.checked) {
        alert("checked")
    }else{
        alert("unchecked")
    }
}) 
 <input id="remember" name="remember" type="checkbox"/> 

using jQuery

 $(document).ready(function () {
    //using jQuery code
    $('#remember').on('change', function (e) {
        if (e.currentTarget.checked) {
            alert("checked")
        } else {
            alert("unchecked")
        }
    })
}) 
 <input id="remember" name="remember" type="checkbox"/>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> 

Комментарии:

1. Я рекомендую вам использовать attr onclick или использовать код jQuery.

Ответ №14:

Используйте этот простой код ниже: 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> 

Ответ №15:

Вы можете попробовать это:

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

Ответ №16:

Попробуйте Это

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

Ответ №17:

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

 <script type="text/javascript">
if ($('#remember')[0].checked) 
{
 alert("checked");
}
</script>