如何在ajax参数

时间:2017-08-29 06:32:07

标签: javascript jquery ajax jquery-select2

我在wep页面中使用select2下拉列表,我想使用ajax参数将选定的值发送到servlet,我在Ajax下面尝试过,但它对我不起作用。

我的HTML Select代码

<select class="form-control select2" id="color" name="color" multiple="multiple" data-placeholder="Select Colors">
    <option>Red</option>
    <option>Blue</option>
    <option>Green</option>
    <option>Gray</option>
</select>

我的Ajax代码:

     $.ajax({
         type: 'POST',
         url: 'MyServerUrl',                                
         data: {
            color: $("#color").select2('data') 
            },
         success: function (data, textStatus, jqXHR){
         },
         error: function (data, textStatus, jqXHR) {
         }
     });

有没有办法将Direct对象发送到Ajax参数?

2 个答案:

答案 0 :(得分:0)

$("#color").val();将为您提供包含所选值的数组。例如:

["red", "blue", "gray"]

但是仍然必须为您的选项定义值,因为它们现在没有价值。

<select class="form-control select2" id="color" name="color" multiple="multiple" data-placeholder="Select Colors">
    <option value="red">Red</option>
    <option value="blue">Blue</option>
    <option value="green">Green</option>
    <option value="gray">Gray</option>
</select>

使用相同的val方法,您还可以以编程方式设置值: $("#color").val(["blue", "red"]).trigger("change");

答案 1 :(得分:0)

只需使用val()并在帖子变量名称后面添加括号

 $.ajax({
      type: 'POST',
      url: 'MyServerUrl',
      data: {
          'color[]': $('select.select2').val()
      },
      success: function (data, textStatus, jqXHR){

      },
      error: function (data, textStatus, jqXHR) {
      }
 });

它应该做魔法:)