0

我有一个长长的项目表,每个项目都有一个复选框。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>

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

4

3 回答 3

2

您可以设置如下onchange属性:

 onchange="showInput(this.checked);"

和像这样的javascript:

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

小提琴演示

于 2013-06-10T12:18:07.533 回答
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>
于 2013-06-10T12:18:55.187 回答
0

由于您选择了undefined一些复选框,而不是其他复选框,我敢打赌您在分配处理程序时会出现一些拼写错误。

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

$(function() {
    $('input[type="checkbox"].selectedCB').on('change', function(e) {
        alert($(this).prop('checked'));
    };
});
于 2013-06-10T12:18:13.860 回答