我正在尝试使用Javascript检测是否已选中复选框。我的计划是允许用户选中复选框以便将字母标记为已打印,然后使用Ajax更新数据库。
这是我正在使用的代码。
<label for="printed">Printed</label>
<input type="checkbox" name="8200" id="8200" value="P" onclick="checked(this.id);" />
<script type="text/javascript">
function checked(id) {
var remember = document.getElementById(id);
if (remember.checked){
alert("checked");
}else{
alert("You didn't check it!");
}
}
</script>
我收到的所有信息都是错误Uncaught TypeError: boolean is not a function from Google Chrome and checked is not a function from Firefox.
答案 0 :(得分:6)
您应该为javascript方法使用不同的名称,因为输入的布尔选中字段只隐藏您定义的字段...
答案 1 :(得分:2)
您需要更改javascript方法的名称。
HTML:
<label for="printed">Printed</label>
<input type="checkbox" name="8200" id="8200" value="P" onclick="isChecked(this.id);" />
JS:
function isChecked(id) {
var remember = document.getElementById(id);
if (remember.checked){
alert("checked");
}else{
alert("You didn't check it!");
}
}
看看这个JSFiddle: http://jsfiddle.net/6dx6A/39/
答案 2 :(得分:1)
只需将您正在使用的函数名称更改为“checked(this.id)”即可。我试过了checked1(this.id)。它工作
答案 3 :(得分:1)
您可以更改功能名称以获得如下答案。它对我有用
function IsChecked(id)
{
var remember = document.getElementById(id);
if (remember.checked){
alert("checked");
}else{
alert("You didn't check it!");
}
}
答案 4 :(得分:1)
由于您有一个我不满意的不同jQuery解决方案,我将为您提供我的jQuery解决方案:
<input type="checkbox" name="8200" id="theid" value="P" />
// 8200 isn't a valid id in HTML4, it can't start with a number
$('#theid').change(function(){
if (this.checked)
alert('checked');
else
alert('unchecked');
});
答案 5 :(得分:0)
以下是JQuery解决方案中的内容,适用于页面上的每个复选框(向选择器添加一个类,只能将其应用于某些复选框)
$(function(){
var remember;
$('input:checkbox').click(function(){
remember = $(this).attr('id');
if($(this).is(':checked')){
// Checkbox is checked
} else {
// Checkbox is NOT checked
}
});
});