0

我有一些 javascript 从 URL 中获取输入,例如...

www.mydomain.com/?dropdown=Alpha

然后,这将从位于 myform -> mydiv 的下拉框中预先选择 Alpha

function show(choice) {

  var success = -1;
  for (var i=0; i < document.myform.mydiv.length; i++) {
    if (document.myform.mydiv.options[i].text == choice) 
      success = [i];
  }
  document.myform.mydiv.selectedIndex=success;
} 
var choice = (location.href.split("?")[1] || '').split("=")[1];

除了您访问没有扩展名的 url 之外,一切正常,所以 www.mydomain.com - 然后它会引发以下错误......

document.myform.mydiv is undefined

下拉html是...

<form name="myform">
  <select name="mydiv">
    <option value="1">Alpha</option>
    <option value="2">Beta</option>
    <option value="3">Gamma</option>
    <option value="4">Delta</option>
  </select>
</form>

 <script>
  show(choice);
  </script>

这是非常不言自明的,我知道这是因为它是未定义的,我的问题是如何添加检查来修复?

4

1 回答 1

1

我认为你的java脚本函数在表单标签元素实现之前调用......所以只有这个错误发生......

尝试从任何一个表单元素事件中调用该函数...然后它将起作用...

就像下面...

<html>
<head>
<script>
var urlpath = "www.mydomain.com/?dropdown=Alpha"
var choice = (urlpath.split("?")[1] || '').split("=")[1];
function show()
{
var success = -1;
  for (var i=0; i < document.myform.mydiv.length; i++) {
    if (document.myform.mydiv.options[i].text== choice) 
      success = i;
  }
  document.myform.mydiv.selectedIndex=success;
}
</script>
</head>
<body>
<form name="myform">
  <select name="mydiv" onchange="show();">

    <option value="2">Beta</option>
    <option value="3">Gamma</option>
    <option value="4">Delta</option>
    <option value="1">Alpha</option>
  </select>
</form>
</body>
</html>
于 2013-02-06T18:09:29.120 回答