首页 > 解决方案 > 获取选中的值

问题描述

当我选中左侧的框时,我想检索输入字段中的值,当我取消选中它时,它会从字段中删除值。但也应该是,当我选中几个复选框时,它会在输入字段中添加所有值并用逗号分隔数据。怎么可能做到这一点?这是我的代码的样子。

我的JS

 function checkedUsers() {
    $("input[type='checkbox']:checked").each(
        function () {
            if (!$(this).is(':checked')) {
                $('.product-message').val();
            } else {
                $('.product-message').val($(this).val());
            }
        });
}

我的 tpl (聪明的)

{foreach from=$familyUser item=user}
    {if $user.active == 1 && {math equation="floor(age / 365)" age=$user.age} <= 16}
        <div class="input-group mb-3">
            <div class="input-group-prepend">
                <div class="input-group-text">
                    <p>
                        <input type="checkbox" value="{$user.id_block_family}" id="userChecked" name="userChecked[]" onclick="checkedUsers();">
                        {$user.surname|escape:'htmlall':'UTF-8'} {$user.name|escape:'htmlall':'UTF-8'}
                    </p>
                </div>
            </div>
        </div>
    {/if}
{/foreach}

谢谢您的帮助。

标签: phpjqueryprestashop

解决方案


执行此操作的最简单方法之一是每次都从仍选中的复选框中简单地重建值。这样您就不必跟踪删除了哪个值。

function checkedUsers() {
  //set the value to all the selected values, separated by a comma
  $('.product-message').val(
    $(":checkbox:checked").map(function(){ return this.value; }).get().join(', ')
  );
}


推荐阅读