【问题标题】:Remove numbers from a comma separated string in javascript when checked is false选中时从 javascript 中的逗号分隔字符串中删除数字为假
【发布时间】:2019-11-09 14:31:52
【问题描述】:

我有一些按类型复选框的输入:

<input type="checkbox" value="5da1dc651d011c56ef1cb3db_693715"  onchange="handlechange(this)">
<input type="checkbox" value="6da1dc651d011c56ef1cb3db_123689"  onchange="handlechange(this)">

handlechange()函数将添加输入checkin的值

<input type="hidden" value="" class="GetVals" />

The main problem is that when checked is false the value of that input should be removed of &lt;input type="hidden" value="" class="GetVals" /&gt;, but it would not remove.

function handlechange(a) {
  var check = $(a).prop("checked");
  if (check == true) {
    var value = $(a).val();
    ids += value + ','

  } 
  else if (check == false) {
    var elements = ids.substring(0, ids.lastIndexOf(","))
    var element = elements.split(",");
  }
  $(".GetVals").val(ids)
}

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    你可以使用一些内置的方法来达到这个结果。

    您只能在带有.get()join() 的选中复选框上使用.map(),如下所示:

    function handlechange() {
      var ids = $('input:checked').map((i, chk) => chk.value).get().join();
      $(".GetVals").val(ids)
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <input type="checkbox" value="5da1dc651d011c56ef1cb3db_693715"  onchange="handlechange(this)">
    <input type="checkbox" value="6da1dc651d011c56ef1cb3db_123689"  onchange="handlechange(this)">
    
    <input class="GetVals" style="width:500px;"/>

    【讨论】:

    • 打败我 :-) 。顺便说一句,您不再需要参数 a & in onchange="handlechange(this)"
    【解决方案2】:

    function handlechange() {
      var ids = [];
      $(".checkbox").each(function() {
        if ($(this).prop("checked")) {
          ids.push($(this).val());
        }
      });
      $(".GetVals").val(ids.join(","));
      $("#vals").text(ids.join(","));
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <input class="checkbox" type="checkbox" value="5da1dc651d011c56ef1cb3db_693715" onchange="handlechange()">
    <input class="checkbox" type="checkbox" value="6da1dc651d011c56ef1cb3db_123689" onchange="handlechange()">
    <input type="hidden" value="" class="GetVals" />
    <div id="vals"></div>

    您可以使用each 循环checkbox 然后join 所有检查的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      相关资源
      最近更新 更多