复选框'已检查'值不一致未定义

时间:2013-06-10 12:12:33

标签: jquery checkbox

我有一个很长的项目表,每个项目都有一个复选框。 Onchange我调用的函数只提醒检查值:

<input class="selectedCB" id="13" onchange="showInput(13);" type="checkbox">
<input class="selectedCB" id="14" onchange="showInput(14);" type="checkbox">
<script language="JavaScript" type="text/javascript"><!--
  function showInput(idx) {
    alert($('#'+idx).prop('checked'));    
  }
//--></script>

在我的页面中(充满了其他脚本和东西)我从某些人那里获得了未定义,而从其他人那里得到了正确的价值。 在“干净”的测试页面中,它们完美运行。 我不确定从哪里开始寻找其他可能使得一些在检查时仍然未定义的东西。 有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您可以将onchange属性设置为:

 onchange="showInput(this.checked);"

和javascript一样:

function showInput(ischecked) {
    alert(ischecked);
}  

FIDDLE DEMO

答案 1 :(得分:1)

尝试使用:checked选择器和.is()过滤器方法

<input class="selectedCB" id="13" onchange="showInput(13);" type="checkbox">
<input class="selectedCB" id="14" onchange="showInput(14);" type="checkbox">
<script language="JavaScript" type="text/javascript"><!--
  function showInput(idx) {
    alert($('#'+idx).is(':checked'));    
  }
//--></script>

答案 2 :(得分:0)

由于你在某些复选框上获得了undefined,而在其他复选框上却没有,我打赌你在分配处理程序时会有一些拼写错误。

尝试为所有复选框分配一次处理程序,看看是否有帮助:

$(function() {
    $('input[type="checkbox"].selectedCB').on('change', function(e) {
        alert($(this).prop('checked'));
    };
});