我有select
<select name="country" multiple>
<option value="IN">India</option>
<option value="US">United States</option>
</select>
提交表单时如果同时选择了两个国家/地区,则默认行为为:
country=IN,country=US
但我想同时发送价值和文字,例如IN
和INDIA
。如何做到
答案 0 :(得分:2)
发布表单只会发送&#34;值&#34;您的后端选项,所以如果您还需要文本,您可以将它们组合在一起,如
<option value="IN,India">India<option>
然后将值拆分为后端的分隔符。
答案 1 :(得分:1)
我认为你应该尝试一下:
$("#btnSub").on('click',function(){ // Submit button click
$(".select option:selected").each(function(i, option){
console.log($(this).val() + "," + $(this).text());
});
return false;
});
<强> HTML 强>
<select class="select" name="country" multiple="multiple"> </select>
答案 2 :(得分:0)
您可以使用jquery自己构建请求数据。类似的东西:(未经过测试,可能需要一些更正,但这里的想法)
//POST request
$("#form").submit(function(){
var countryVal = $("[name=country]").val();
var countryLbl = $("[name=country]").find("option:selected").text();
$.ajax({
data:{countryVal:countryVal, countryLbl: countryLbl},
url: yourUrl,
method:'post'
});
return false;
});
// GET request
$("#form").submit(function(){
var countryVal = $("[name=country]").val();
var countryLbl = $("[name=country]").find("option:selected").text();
$.ajax({
url: 'yourUrl?countryVal='+countryVal+'&countryLbl='+countryLbl'
});
return false;
});
如果你对ajax请求没问题,这项工作就可以了。如果您不是,请在表单中设置隐藏输入并在提交前设置值:
$("#form").submit(function(){
$("[name=countryVal"]).val($("[name=country]").val());
$("[name=countryLbl]").val($("[name=country]").find("option:selected").text());
});