【问题标题】:Jquery display checkbox`s value in divJquery在div中显示复选框的值
【发布时间】:2018-03-09 07:27:10
【问题描述】:

我有这个脚本可以让我显示复选框(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 个复选框,则会显示:

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

谢谢。

【问题讨论】:

    标签: jquery html asp.net checkbox


    【解决方案1】:

    当您选择所有这些时,该语句变为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 =)

    【讨论】:

    • 好的,所以我的问题是,如果所有复选框都被双选,我怎样才能让#job_numbers div 再次为空?函数执行前开始为空。
    • 如果你在没有 if 语句的情况下执行该代码,它不会工作吗?
    • 是的,剩余值的问题已经解决。但是
    • 刚刚编辑了我的答案。请查看并反馈给我@Fresher
    • 有效。谢谢亚瑟。有时它比您想象的要容易!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多