设置从URL中选择多个

时间:2015-05-06 18:59:48

标签: javascript jquery multiple-select

我使用以下代码从URL中获取信息以预填表单,但是,如果提供了多个选项,我试图使用多重选择。

$(function() {
    //grab the entire query string
    var query = document.location.search.replace('?', '');
    //extract each field/value pair
    query = query.split('&');
    //run through each pair
    for (var i = 0; i < query.length; i++) {
        //split up the field/value pair into an array
        var field = query[i].split("=");
        //target the field and assign its value
        $("input[name='" + field[0] + "'], select[name='" + field[0] + "']").val(field[1]));
    }
});

多选示例

<select name='strings' id="strings" multiple style="width:100px;">
    <option value="Test">Test</option>
    <option value="Prof">Prof</option>
    <option value="Live">Live</option>
    <option value="Off">Off</option>
    <option value="On">On</option>
</select>

我希望能够做http://www.example.com?strings=Test,Prof或类似的事情。我是JQuery的新手,并不确定这一点。

2 个答案:

答案 0 :(得分:1)

您可以传递数组作为设置int first = String.valueOf(123456).charAt(0) - '0'; 选择值的值。

一种简单的方法,寻找multiple的存在来指示多个值(如果,是其他字段值中的有效字符,那么做更聪明的事情):

,
var query = 'strings=Test,Prof';
//extract each field/value pair
query = query.split('&');

//run through each pair
for (var i = 0; i < query.length; i++) {
  //split up the field/value pair into an array
  var field = query[i].split("=");
  //target the field and assign its value

  var parts = field[1].split(',');

  if (parts.length > 1)
    $("select[name='" + field[0] + "']").val(parts);
  else
    $("input[name='" + field[0] + "'], select[name='" + field[0] + "']").val(field[1]);
}

答案 1 :(得分:0)

你可以在这个小提琴中使用javascript:http://jsfiddle.net/yqh5u762/

document.getElementById("strings")[2].selected = true;
document.getElementById("strings")[1].selected = true;

您无法告诉复选框更改它的值,因为只允许一个,但您可以告诉各个选项显示所选内容。这确实需要您使用与选项数组相关的索引号。