【问题标题】:Show option text instead value [duplicate]显示选项文本而不是值[重复]
【发布时间】:2013-01-27 07:06:33
【问题描述】:

我有这个代码在文本框中显示下拉值。 实际上,当我从文本框中的下拉列表中选择一个值时,会显示一个值。 如何修改以显示选项文本 insted 值?

<select id="Ultra" onchange="run()">
    <!--Call run() function-->
    <option value="0">Select</option>
    <option value="8">text1</option>
    <option value="5">text2</option>
    <option value="4">text3</option>
</select>

<br>
<br>
TextBox1
<br>

<form>
    <input id="srt" placeholder="get value on option select" type="text">
    <br>
    TextBox2<br>
    <input id="rtt" onkeyup="up()" placeholder="Write Something !" type="text">
    <script>
    function run() {
        document.getElementById("srt").value = document.getElementById("Ultra").value;
    }

    function up() {
        //if (document.getElementById("srt").value != "") {
        var dop = document.getElementById("srt").value;
        //}
        pop(dop);
    }

    function pop(val) {
        alert(val);
    }
    </script>
</form>

【问题讨论】:

    标签: javascript html forms dom option


    【解决方案1】:

    您需要获取所选选项的文本,例如

    <!-- pass reference to the element in the call -->
    <select id="Ultra" onchange="run(this)">
    

    脚本:

    function run(sel) {
      var i = sel.selectedIndex;
      if (i != -1) {
        document.getElementById("srt").value = sel.options[i].text;
      }
    }
    

    【讨论】:

    • RobG,非常感谢,效果很好。
    【解决方案2】:

    var Select = document.getElementById("Ultra");

    var selectedText = Select.options[Select.selectedIndex].text;

    【讨论】:

    • 请注意,如果未选择任何选项,selectedIndex 将为 -1。在这种情况下,Select.options[Select.selectedIndex] 将返回 undefined,它没有 text 属性并会抛出错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2019-11-18
    • 1970-01-01
    • 2019-02-11
    相关资源
    最近更新 更多