在提交的javascript中从多个select中获取数据

时间:2017-04-27 11:21:04

标签: javascript jquery

当按下提交按钮时,我需要帮助将多选中的选定数据导入我的javascript数据字符串。

所以我选择了这个:

<select multiple class="form-control" name="DivisionSelect[]">
  <option value="|TD">Traffic Division</option>
  <option value="|CP">Metro - C Platoon</option>
  <option value="|DP">Metro - D Platoon</option>
</select>

我希望所选数据彼此相邻,如下所示:“| TD | DP”如果选择了Traffic和D Platoon。我怎么能这样做?

4 个答案:

答案 0 :(得分:2)

您可以在join()值上使用select并将其添加到字符串。

$('select').change(function() {
  var str = '&Divs="' + $(this).val().join('') + '"';
  console.log(str)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select multiple class="form-control" name="DivisionSelect[]">
  <option value="|TD">Traffic Division</option>
  <option value="|CP">Metro - C Platoon</option>
  <option value="|DP">Metro - D Platoon</option>
</select>

要在表单提交中获取此值,您可以使用submit上的form事件,并使用select

获取find的值

$('form').submit(function(e) {
  e.preventDefault();
  
  var value = $(this).find('select[name="DivisionSelect[]"]').val();
  var str = '&Divs="' + (value ? value.join('') : '') + '"';
  console.log(str)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="">
  <select multiple class="form-control" name="DivisionSelect[]">
  <option value="|TD">Traffic Division</option>
  <option value="|CP">Metro - C Platoon</option>
  <option value="|DP">Metro - D Platoon</option>
</select>
  <br>
  <input type="submit" value="Submit">
</form>

答案 1 :(得分:1)

&#13;
&#13;
$("select").change(function() {

  var value = $("select option:selected").map(function() {


    return $(this).val()
  }).get().join("")

  console.log("&Divs="+value)
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select multiple class="form-control" name="DivisionSelect[]">
  <option value="|TD">Traffic Division</option>
  <option value="|CP">Metro - C Platoon</option>
  <option value="|DP">Metro - D Platoon</option>
</select>
&#13;
&#13;
&#13;

使用.map()

  

描述:将数组或对象中的所有项目转换为新的项目数组。

答案 2 :(得分:0)

Hev你试过,读出所选的选项,然后将它们附加到一个字符串?您可以通过concat()追加:

var str1 = "Hello ";
var str2 = "world!";
var res = str1.concat(str2);

我希望这有帮助:)

答案 3 :(得分:0)

我认为下面的代码对你有用。

var querystring = "&DivisionSelect=";
$('[name="DivisionSelect"] :selected').each(function(i, selected){ 
  querystring += $(selected).val()+querystring; 
});
alert(querystring);