【问题标题】:jQuery push array inserts commajQuery推送数组插入逗号
【发布时间】:2014-12-03 08:53:36
【问题描述】:

我有几个相同类的选择框。但是,当我使用 jQuery 数组推送方法将该类中的所有选定值作为数组获取时,它只是在每个值之前添加一个逗号 (,)。 它适用于具有静态值的鳍。问题是当我从 PHP 数组中添加值以选择框时。 这是我的选择框代码的样子

<select name="add_purch_item1" class="add_purch_item">
    <option value="">----select----</option>
    <?php if(!empty($pro_list1)) { foreach($pro_list1 as $products) { ?>
        <option value="<?php echo $products->sku; ?>"><?php echo $products->product_name; ?></option>
    <?php } } ?>
</select>

<select name="add_purch_item2" class="add_purch_item">
    <option value="">----select----</option>
    <?php if(!empty($pro_list2)) { foreach($pro_list2 as $products) { ?>
        <option value="<?php echo $products->sku; ?>"><?php echo $products->product_name; ?></option>
    <?php } } ?>
</select>

我已经为按钮添加了点击功能。单击时,它将所有选定的值作为数组获取。这是我的 jQuery 代码,

var selected = [];

    $('.add_purch_item').each(function () {
        selected.push($(this).val());
    });

    alert(selected);

当我尝试使用静态值选择框时,它会给出正确的输出。 See here an example

我在动态值中得到了错误的输出。那个不需要的逗号是我的问题。如何避免这种情况?我也尝试过字符串替换。

【问题讨论】:

  • 您能否发布您的完整代码。一个有效的小提琴对诊断问题并没有真正的帮助。
  • 我能看到的唯一原因是可能有一个空值
  • 完整代码是什么意思?哪个代码?

标签: php jquery arrays comma


【解决方案1】:

发生这种情况是因为还插入了空白值。您需要在插入之前检查所选值是否为空。

$('.add_purch_item').each(function () {
    var val = $(this).val();
    if (val) {
        selected.push(val);
    }
});

See updated fiddle.

【讨论】:

    【解决方案2】:

    它发生在您有空白选择元素的地方(未选择值)。因此,当您创建数组时,请忽略未选择值的选择元素。

    $(document).on("click", '#submit', function() {
      var selected = [];
    
      var selected = $('.add_purch_item').map(function() {
        return $(this).val() || undefined;
      }).get();
    
      alert(selected);
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <select name="name1" class="add_purch_item">
      <option value="" selected="selected">-----</option>
      <option value="1">value1</option>
      <option value="2">value2</option>
    </select>
    
    <select name="name2" class="add_purch_item">
      <option value="" selected="selected">-----</option>
      <option value="1">value1</option>
      <option value="2">value2</option>
    </select>
    <button id="submit">Check</button>

    【讨论】:

      猜你喜欢
      • 2014-05-21
      • 2011-05-12
      • 1970-01-01
      • 2014-04-09
      • 2016-04-17
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多