我正在尝试通过Ajax提交一个完整的多重选择($('#tags_selected'))
$.ajax({
url: base_url + 'companies/editTagsAsync',
type: 'post',
dataType: 'json',
data: $('#tags_selected').val(),
success: function (json) {
console.log(json);
}
});
但它只发送所选的值。我想传递选择框中的所有值。这可能是一个简单的解决方案,但我只是不知道......
答案 0 :(得分:4)
您可以将所有选择值推送到数组中,然后通过data
发送:
var selectArr = [];
$('#tags_selected option').each(function() {
selectArr.push($(this).val());
});
$.ajax({
url: base_url + 'companies/editTagsAsync',
type: 'post',
dataType: 'json',
data: selectArr,
success: function (json) {
console.log(json);
}
});
答案 1 :(得分:0)
您需要找到下拉列表的<option>
后代并获取其值:
data: {
values: $('#tags_selected').find("option").map(function() {return this.value;})
}
这样在服务器端,您将获得一个名为“values”的数组,其中包含所有值。我使用.find()
代替.children()
来预测包含<optgroup>
元素的下拉列表。
答案 2 :(得分:0)
You need to send both selected and all values array.
var data: {
allValues: $('#tags_selected').find("option").map(function() {return this.value;}),
selectedValues :$('#tags_selected').val()
}
var data={ }
$.ajax({
url: base_url + 'companies/editTagsAsync',
type: 'post',
dataType: 'json',
data: data,
success: function (json) {
console.log(json);
}
});