获取具有相同名称Jquery的select值?

时间:2014-10-01 05:42:31

标签: jquery json

我有这个 的 HTML

<select class="form-control" required="" name="article">
<option value="Coca Cola">Coca Cola</option>
<option value="Carnex">Carnex</option>
</select>
<select class="form-control" required="" name="article">
<option value="Fanta">Fanta</option>
<option value="Sprite">Sprite</option>
</select>

我需要的是获得选择的价值并制作一个像这样的新json

var articlesSelected =
[{
  "article" : "Coca Cola"
},{
  "article" : "Fanta"
}
];


var selects = array();
selects = $('[name~=article]').val();

3 个答案:

答案 0 :(得分:2)

.val()仅返回集合中第一个元素的值。您需要使用.each().map()

var selects = $('[name=article]').map(function() { 
    return { article: this.value };
}).get();

答案 1 :(得分:1)

尝试在此上下文中使用$.each()来优雅地完成任务,

var articlesSelected = $.map($('select[name="article"]'), function (val, _) {
    var newObj = {};
    newObj.article = val.value;
    return newObj;
});

DEMO

答案 2 :(得分:0)

啊!你可以这样做:

var articles = $('select').map(function(){ return $(this).val() }).get();
var json = JSON.stringify([{article:articles[0]},{article:articles[1]}]);