使用查询字符串参数动态设置选择下拉列表的值

时间:2013-11-12 23:00:20

标签: javascript html

首先,我是Javascript的新手。

我的表单中包含带有各种选项的select元素,而我无权更改表单。选项没有id,只有下面代码中显示的值。

    <form>
    <select class="country" name="country" id="countryid">
        <option value="usa" selected="selected">USA</option>
        <option value="canada">Canada</option>
        <option value="japan">Japan</option>
        <option value="china">China</option>
        </select>
    </form>

我的目标是根据url参数自动填充上面表单中的字段。 例如,www.example.com?country = china应该在表单领域填充中国。以下是javascript代码:

<script>
var param1var = getQueryVariable("country");

function displayresult(){
    //document.getElementById(param1var).selected=true; //if there was id given in     the form field
        //cannot use document.getElementByValue(param1var).selected=true;
    //document.querySelectorAll('input[value=' + param1var + ']').selected=true; does not work
}

function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
}
</script>
  1. 我无法使用 document.getElementById (param1var),因为没有ID。
  2. Javascript不支持 document.getElementByValue (param1var)。
  3. document.querySelectorAll 无效。
  4. 有没有办法可以使用选项值引用元素?

    谢谢!

1 个答案:

答案 0 :(得分:1)

您可以通过设置select元素的值来这样做。另请注意,值区分大小写,另外请确保函数displayresultonload上运行,或者在元素出现在html之后。

document.getElementById("countryid").value=param1var; 

<强> Demo