Jquery在div中显示复选框的值

时间:2017-09-27 17:44:41

标签: jquery html asp.net checkbox

我有这个脚本,它允许我显示复选框(aspx)旁边的值(文本)。在复选框上,更改文本显示在以逗号分隔的div中。不知何故,如果选中任何复选框然后进行二次检查,则该值不会从JobIDs var中消失。我在这里失踪了什么?

 $(document).data('JobNumbers', "");
 $('[id*=projectchk] input').change(function() {
    var JobIDs = "";
    var JobIDs = $(':checked').map(function() {
        return $(this).closest("span").find("label").html();
    }).get().join(', ');
    var JobNumbers = "<label> Reference Job #:</label> " + JobIDs;
    $('#job_numbers').html(JobNumbers);
    if (JobIDs != "") {
        $(document).data('JobNumbers', JobNumbers);
    }
    return false;
 });

因此,如果选中3个复选框,则会显示:

enter image description here

但即使我选择了所有这些,它仍会显示最后一个:

enter image description here

感谢。

1 个答案:

答案 0 :(得分:0)

当您选择所有这些语句时,该语句将变为false

if (JobIDs != "") {
    $(document).data('JobNumbers', JobNumbers);
}

所以你的代码没有被执行。

编辑:如果您不想在没有选择选项的情况下显示标签,我认为这样可行:

 $(document).data('JobNumbers', "");
 $('[id*=projectchk] input').change(function() {
    var JobIDs = "";
    JobIDs = $(':checked').map(function() {
        return $(this).closest("span").find("label").html();
    }).get().join(', ');
    var JobNumbers = "";
    if (JobIDs != "") {
        JobNumbers = "<label> Reference Job #:</label> " + JobIDs;
    }
    $('#job_numbers').html(JobNumbers);
    $(document).data('JobNumbers', JobNumbers);
    return false;
 });

这里也是一个很好的做法提示:每次使用变量时都不需要写var,只有当你声明它时。我还强烈建议您阅读有关JavaScript letconst =)

的内容