我可以使用Javascript来检测是否已选中复选框?

时间:2012-11-14 10:43:20

标签: javascript ajax checkbox

我正在尝试使用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.

6 个答案:

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

    }

  });
});