Javascript 无法从表单中获取复选框的状态
我正在尝试运行以下函数:Javascript 无法从表单中获取复选框的状态,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我正在尝试运行以下函数: var getFavorite = function(){ var favCheck = document.querySelector("#fav"); var status; if(favCheck.checked){ status = "Yes!"; }else{ status = "No"; } return status; }; html表单包含以下内容: <form action="#" id="flavorForm">
var getFavorite = function(){
var favCheck = document.querySelector("#fav");
var status;
if(favCheck.checked){
status = "Yes!";
}else{
status = "No";
}
return status;
};
html表单包含以下内容:
<form action="#" id="flavorForm">
<ul id="errors"></ul>
<div data-role="fieldcontain">
<label for="drug">Flavor: </label>
<input type="text" name="flavor" id="flavor" class="required" />
</div>
<div data-role="fieldcontain">
<label for="favorite">Favorite?</label>
<input type="checkbox" id="favorite" value="Yes" class="checkbox" />
</div>
<div data-role="fieldcontain">
<label for="notes">Notes: </label>
<textarea name="notes" id="notes"></textarea>
</div>
<input type="submit" value="Save Flavor" id="submitFlavor" data-theme="b" />
</form>
风味:
最喜欢的
笔记:
favCheck的值应该来自第二个。。。表格的块。但每当我在表单上输入一个值时,无论我是否选中复选框,都会得到一个“TypeError:favCheck为null”。我正在使用jQuery检索这些值。如有任何建议,我们将不胜感激。谢谢。因为您使用的是ID而不是类
favcheck = document.getElementById('fav');
此外,您需要实际使用该ID
fav
,而不是像现在这样使用favorite
。您拼错了ID名称。请使用#favorite
而不是#fav
试试这个
var getFavorite = function(){
var favCheck = document.querySelector("#favorite");
var status;
if(favCheck.checked){
status = "Yes!";
}else{
status = "No";
}
return status;
};
HTML
jQuery
$('#checkme')。更改(函数(){
var checkbox=$('#checkme').prop('checked');
如果(复选框){
警报(“复选框已选中”);
}否则{
警报(“未选中复选框”);
}
});
http://jsfiddle.net/rjE8P/
这些将给出相同的结果您没有任何ID等于fav的元素…var getFavorite=function(){return document.getElementById(“#favorite”).checked;}代码>复选框的更改无关紧要,除非有一个事件监听器,这在操作代码中没有显示。他发布的函数将在页面加载开始时获取值,而不获取任何内容else@Deryck我想OP已经使用函数getFavorite作为一些函数的回调event@A.Wolff这是一种可能性,但没有内联的,你知道当我们假设时会发生什么;)@德瑞克:我知道;)但很明显,OP使用了错误的ID,顺便说一句,他告诉我们他得到了null元素的错误
HTML
<input type="checkbox" id="checkme" checked="checked" />
jQuery
$('#checkme').change(function () {
var checkbox = $('#checkme').prop('checked');
if (checkbox) {
alert('checkbox is checked');
} else {
alert('checkbox is not checked');
}
});
http://jsfiddle.net/rjE8P/
$('#favorite').change(function(){
var status;
if($(this).is(':checked')) {
status = 'Yes';
}
else{
status = "No";
}
alert(status);
});