Html SELECT:在提交时发送值和文本

时间:2014-03-21 10:09:15

标签: jquery html

我有select

<select name="country" multiple>
    <option value="IN">India</option>
    <option value="US">United States</option>
</select>

提交表单时如果同时选择了两个国家/地区,则默认行为为:

country=IN,country=US

但我想同时发送价值和文字,例如ININDIA。如何做到

3 个答案:

答案 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>

Fiddle Demo

答案 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());
});