使用JQuery .serialize()来组合具有相同名称的表单元素?

时间:2012-05-31 17:09:32

标签: jquery serialization

我有以下表单输入元素,每个元素都具有相同的“rating”名称,如下所示。

<input type="checkbox" checked="checked" value="5" id="rating5_2053" name="rating">
<input type="checkbox" checked="checked" value="4" id="rating4_2053" name="rating">
<input type="checkbox" checked="checked" value="3" id="rating3_2053" name="rating">

<input type="checkbox" checked="checked" value="2" id="rating2_2053" name="rating">
<input type="checkbox" checked="checked" value="1" id="rating1_2053" name="rating">
<input type="checkbox" checked="checked" value="0" id="rating0_2053" name="rating">

使用时

$form.serialize();

并提交表格,

编辑:使用JQuery Serialize()结果并操纵GET请求的查询字符串,它最终如下所示:

&rating=5&rating=4&rating=3&rating=2&rating=1&rating=0

有充分的理由这样做,但就我而言,我不需要这样做。

我想知道是否有一种方法可以将其配置为执行以下操作?

&rating=5,4,3,2,1,0

由于

2 个答案:

答案 0 :(得分:4)

你去吧

var ratingData = [],
    data = $('form').find('input:not([name="rating"])').serialize();
$('form').find('input[name="rating"]').each(function(){
    ratingData.push(this.value);
});
data += '&rating='+ratingData.join(',');
console.log(data);

http://jsfiddle.net/Ejf45/1/

答案 1 :(得分:2)

你可以尝试这样的事情:)

var ratings="rating=";

$('input[name="rating"]:checked').each(function(){ 

    var temp = $(this).val();

    ratings = ratings+ temp +",";

});

alert(ratings);​

Jsfiddle Link