【问题标题】:how to select elements which their names are array in jquery?如何在jquery中选择名称为数组的元素?
【发布时间】:2015-02-03 12:37:38
【问题描述】:

如何获取这些元素的值并通过 ajax 将它们发布为数组:

<input type="checkbox" name="Broadcast[m]"/> Members
<input type="checkbox" name="Broadcast[i]"/> IATA agencies
<input type="checkbox" name="Broadcast[n]"/> non-IATA agencies
<input type="checkbox" name="Broadcast[c]"/> Commitees

【问题讨论】:

  • 你的标题看不懂?这些元素的值是什么意思?
  • 您的复选框没有被赋予价值,因此您无法发布该值
  • @Sadikhasan 只是一个简单的例子
  • @user2101939 提供带有适当数据的代码,以便用户轻松理解。

标签: javascript jquery ajax post


【解决方案1】:

试试这个:

首先将您的输入名称更改为简单的 name="Broadcast[]"

<input type="checkbox" name="Broadcast[]" value="Members"/> Members
<input type="checkbox" name="Broadcast[]" value="IATA agencies"/> IATA agencies
<input type="checkbox" name="Broadcast[]" value="non-IATA agencies"/> non-IATA agencies
<input type="checkbox" name="Broadcast[]" value="Commitees"/> Commitees

然后在 jquery 中通过 ajax 发送数组中的数据,创建一个变量来将所有值映射到一个数组。

jquery:

var BroadCast = $("input[name='BroadCast\\[\\]']").map(function () { return $(this).val(); }).get();

并将变量 BroadCast 放入 ajax 数据中。

$.ajax({
    type:"post",
    url:'your action url',
    data: {BroadCast: BroadCast},
    success:function(data){
    //do what you want here
    }

});

希望对你有所帮助。

【讨论】:

  • map函数像jquery的each函数一样搜索同名元素。在使用 return $(this).val() 时,我此时收到了查找元素的值。
【解决方案2】:
var items = $("input[type=checkbox][name^=Broadcast]"), values = [];
items.each(function(){
    values.push([$(this).attr("name"),$(this).is(":checked")]);
});
console.log(values);

抱歉之前错了,这里给你一个小提琴 fiddle

【讨论】:

    【解决方案3】:

    您可以使用 serialize 方法来执行此操作。首先在您的 html 中为复选框添加值并删除 [] 中的任何内容,并为每个复选框设置为 name='Broadcast[]'

    $.ajax({
        type:"post",
        url:'your url',
        data:$("form").serialize(),
        success:function(data){
        //do stuff here
        }
    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-22
      • 2013-06-06
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多