Как определить, установлен ли флажок?
По какой-то причине моя форма не хочет получать значение флажка... Я не уверен, что это моя кодировка или нет, но когда я пытаюсь и 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>
ИЗМЕНИТЬ
Я попытался изменить его на
function exefunction() {
alert(document.getElementById("lifecheck").checked);
}
Но теперь он даже не хочет execute
. Что не так?
Ответы
Ответ 1
Поместите var lfckv
внутри функции. Когда эта строка выполняется, тело еще не разбирается, а элемент "lifecheck"
не существует. Это прекрасно работает:
<html>
<head>
<script language="javascript" type="text/javascript">
function exefunction(){
var lfckv = document.getElementById("lifecheck").checked;
alert(lfckv);
}
</script>
</head>
<body>
<label><input id="lifecheck" type="checkbox" >Lives</label>
<button onclick="exefunction()">Check value</button>
</body>
</html>
Ответ 2
Вы пытаетесь прочитать значение своего флажка перед его загрузкой. script работает до того, как установлен флажок. Вы должны называть ваш script при загрузке страницы:
<body onload="dosomething()">
Пример:
http://jsfiddle.net/jtbowden/6dx6A/
Вам также не хватает полуколонии после вашего первого задания.
Ответ 3
Строка, в которой вы определяете lfckv, запускается всякий раз, когда браузер находит ее. Когда вы помещаете его в начало документа, браузер пытается найти идентификатор lifecheck до создания элемента lifecheck. Вы должны добавить script под вкладку lifecheck, чтобы ваш код работал.
Ответ 4
попробуйте учиться jQuery Это отличное место для начала работы с javascript, и это действительно упрощает ваш код и помогает отделить ваши js от вашего html. включить js файл из Google CDN (https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js)
то в тэге script (все еще в <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);
});
});
Ответ 5
вы можете использовать этот код, он может вернуть true или false:
$(document).ready(fonction(){
//add selector of your checkbox
var status=$('#IdSelector')[0].checked;
console.lot(status);
});
Ответ 6
<!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>
Ответ 7
<!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>
Ответ 8
var elementCheckBox = document.getElementById("IdOfCheckBox");
elementCheckBox[0].checked //return true if checked and false if not checked