如何使用JavaScript预选<select>列表项

6
我有这段标记和JavaScript代码。我无法在页面加载时预先选择“T”选项(例如)。这是否可能?
    <select id="serviceType" name="serviceType" class="form-control">
      <option value="S">S</option>
      <option value="T">T</option>
      <option value="X">X</option>
    </select>
    <script>
        //document.getElementById("serviceType").selectedIndex = "T"; // did not work
      var e = document.getElementById("serviceType");
      e.options[e.selectedIndex].value = "T"; // does not work
    </script>

注意:在PHP中,“T”是从数据库调用动态生成的。因此,我的脚本实际上看起来像这样:= "<? echo $_POST['serviceType']; ?>"

1
在下面的评论中,您说页面是通过php呈现的,并且您知道应该预选的值?那么为什么不让php直接应用正确的值/选定的属性呢? - Yoshi
4个回答

10
你的注释行没有起作用,因为

是的,我知道 @Jamiec -- 但我正在尝试根据字符串值而不是数字索引来设置选项选择。 - H. Ferrence
@H.Ferrence 哦,我明白了,我已经更新了(原来的答案是基于你注释掉的那一行的)。 - Jamiec
完美 @Jamiec -- 这是包中最干净、最简洁的答案。感谢您的帮助! - H. Ferrence
没问题,很高兴能帮助到你。 - Jamiec

2

就像这样做:

var e = document.getElementById("serviceType");
e.value="T";

这里是可工作的fiddle


非常欢迎!很高兴知道你得到了答案 :) - Deepak Biswal

1
你需要设置 select 标签的 value 而不是 option
var e = document.getElementById("serviceType");
e.value = "T";

0

最简单的方法是使用HTML5中的selected

<select id="serviceType" name="serviceType" class="form-control">
  <option value="S">S</option>
  <option value="T" selected>T</option>
  <option value="X">X</option>
</select>

明白了。 "T" 的值实际上来自于 PHP 中的页面呈现,从数据库调用中获取,因此每次 "T" 都不是静态的。 - H. Ferrence
1
在 HTML5 中,这只需要使用selected即可;而在(X)HTML 中,它必须写成selected="selected" - Jamiec
@Jamiec,我所学的一切都来自大学,所以我的老师强制我们遵循XML :D - Tree Nguyen
你的讲师需要一本新书。 - Jamiec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接