动态创建CheckBox,点击不同的名称和值使用Jquery给“NaN”?

时间:2013-01-31 07:05:40

标签: javascript jquery asp.net checkbox

我正在尝试使用不同的名称和值创建chkbox,然后警告其值导致错误“NaN”我的脚本在这里,

<script type="text/javascript">
var k=0,j=0;
    $(document).ready(function () {
        $("#btnAdd").click(function () {
            var field = $("#field").val();
         k+=1;
            var newRow1="<tr><td align='center' style='font-size: large; color: #212121;' height='35px'>from"
            +DDL_fromProfession +" to "+DDL_ToProfession +"</td></tr>"
            +"<tr><td align='center' style='font-size:large;color:#212121;' height'35px'>"
            +"<input type='checkbox' name='chkbx_CurrPro'"+k+"'' value='"+k+"'>I currently work here</input>";
            alert(k);
            var chkvalue = parseInt($(":checkbox[name='chkbx_CurrPro'"+k+"'']").val()) + 1;
            alert(chkvalue);                
            var checkBoxes = $("input[name=" + chkbx_CurrPro + "]");
              $.each(checkBoxes, function() {
            if ($(this).attr('checked')){
                //do stuff
            }
            });                        
            var input = "<input name='parameters' id='field' type='text' />";
            var input1="<input name='parametersCompany' id='field' type='text'/>"
            var newRow = "<tr><td align='center' style='font-size: x-large; color: #212121;' height='35px'>" 
            + input + " at " +input1 +"</td></tr>";
            $('#controls').append(newRow);
            $('#controls').append(newRow1);
        });
    });
</script>

我想像克里特岛一样,

name = chkbx_CurrPro0 , value = 0
name = chkbx_CurrPro1 , value = 1
name = chkbx_CurrPro2 , value = 2
             .
             .
             .

然后我打印它的值导致NaN错误?希望你的建议 在创建动态chkbox之后我想做的另一件事是它将获得仅标记为chk box的值,

我的代码在这里,

  var checkBoxes = $("input[name=" + chkbx_CurrPro + "]");
                  $.each(checkBoxes, function() {
                if ($(this).attr('checked')){
                    //do stuff
                }
                }); 

但检查在运行时创建的所有chkbox

希望提出建议

由于

1 个答案:

答案 0 :(得分:0)

        var chkvalue = parseInt($(":checkbox[name='chkbx_CurrPro'"+k+"'']").val()) + 1;

我认为你在这里引用了一些问题。试试这个......

        var chkvalue = parseInt($(":checkbox[name='chkbx_CurrPro"+k+"']").val()) + 1;
编辑:看起来你在这里有同样的问题......

"<input type='checkbox' name='chkbx_CurrPro'"+k+"'' value='"+k+"'>

这将尝试将名称设为chkbx_CurrPro'1',但这无效。这应该是......

"<input type='checkbox' name='chkbx_CurrPro"+k+"' value='"+k+"'>

再次编辑: 我在这里看到另一个问题,你试图在复选框实际添加到dom之前获取复选框的值。您已将其添加到字符串中,但是当您调用parseInt时,这只是一个文本字符串,而不是页面的一部分。将parseInt行移动到靠近底部的追加线下方。