获取检查值

时间:2018-07-16 13:27:25

标签: php jquery prestashop

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

我的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}

谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

最简单的方法之一是每次都从仍处于选中状态的复选框中重建值。这样,您不必跟踪删除了哪个值。

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(', ')
  );
}