Как определить, установлен ли флажок? - PullRequest
58 голосов
/ 21 января 2011

По какой-то причине моя форма не хочет получать значение флажка ... Я не уверен, является ли это моим кодированием или нет, но когда я пытаюсь alert() значение, я получаю undefined в следствии. Что я не так делаю?

<head>
  <script>
    var lfckv = document.getElementById("lifecheck").checked
    function exefunction(){
      alert(lfckv);
    }
  </script>
</head>
<body>
  <label><input id="lifecheck" type="checkbox" >Lives</label>
</body>

EDIT

Я пытался изменить это на

function exefunction() {
    alert(document.getElementById("lifecheck").checked);
}

Но теперь он даже не хочет execute. Что не так?

Ответы [ 9 ]

99 голосов
/ 21 января 2011

Поместите var lfckv внутрь функции. Когда эта строка выполняется, тело еще не проанализировано, а элемент "lifecheck" не существует. Это прекрасно работает:

function exefunction() {
  var lfckv = document.getElementById("lifecheck").checked;
  alert(lfckv);
}
<label><input id="lifecheck" type="checkbox" >Lives</label>
<button onclick="exefunction()">Check value</button>
5 голосов
/ 21 января 2011

Вы пытаетесь прочитать значение вашего флажка перед его загрузкой. Сценарий запускается до того, как флажок существует. Вам нужно вызвать свой скрипт при загрузке страницы:

<body onload="dosomething()">

Пример:

http://jsfiddle.net/jtbowden/6dx6A/

Вам также не хватает точки с запятой после первого задания.

4 голосов
/ 04 января 2017

Вы можете использовать этот код, он может вернуть true или false:

$(document).ready(function(){
  
  //add selector of your checkbox

  var status=$('#IdSelector')[0].checked;
  
  console.log(status);

});
1 голос
/ 21 января 2011

попробуйте изучить jQuery это отличное место для начала с javascript, которое действительно упрощает ваш код и помогает отделить ваши js от html включите файл js из CDN Google (https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js)

затем в вашем теге сценария (все еще в <head>) используйте:

$(function() {//code inside this function will run when the document is ready
    alert($('#lifecheck').is(':checked'));

    $('#lifecheck').change(function() {//do something when the user clicks the box
        alert(this.checked);
    });
});
1 голос
/ 21 января 2011

Строка, в которой вы определяете lfckv, запускается всякий раз, когда браузер находит его.Когда вы помещаете его в заголовок документа, браузер пытается найти идентификатор проверки жизни перед созданием элемента проверки жизни.Чтобы ваш код работал, вы должны добавить свой сценарий под вводом lifecheck.

0 голосов
/ 09 марта 2019

Follow вернет true, если флажок установлен, и false, если нет.

$(this).is(":checked")

Замените $ (this) переменной, которую вы хотите проверить.

И используется в условии:

if ($(this).is(":checked")) {
  // do something
}
0 голосов
/ 12 ноября 2017

<!doctype html>
<html lang="en">
<head>
</head>
<body>
<label><input class="lifecheck" id="lifecheck" type="checkbox" checked >Lives</label>

<script type="application/javascript" >
    lfckv = document.getElementsByClassName("lifecheck");
    if (true === lfckv[0].checked) {
      alert('the checkbox is checked');
    }
</script>
</body>
</html>

, поэтому после того, как вы можете добавить событие в javascript, чтобы на динамическое событие повлиял флажок.

спасибо

0 голосов
/ 12 ноября 2017

var elementCheckBox = document.getElementById("IdOfCheckBox");


elementCheckBox[0].checked //return true if checked and false if not checked

спасибо

0 голосов
/ 24 февраля 2015
<!DOCTYPE html>
<html>
<body>
    <input type="checkbox" id="isSelected"/>
    <div id="myDiv" style="display:none">Is Checked</div>
</body>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script>
        $('#isSelected').click(function() {
            $("#myDiv").toggle(this.checked);
        });
    </script>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...