0

我试图在单击时创建具有不同名称和值的 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>

我想要克里特岛的chkbox,

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

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

我的代码在这里,

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

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

希望提出建议

谢谢

4

1 回答 1

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 行移动到附加行下方,靠近底部。

于 2013-01-31T07:12:38.280 回答