【问题标题】:Javascript: Select Form Changes "Value" in Textbox but Does not update when reselecting from same dropdownJavascript:在文本框中选择表单更改“值”,但从同一下拉列表中重新选择时不更新
【发布时间】:2013-09-15 12:07:39
【问题描述】:

这很简单,但对于这个新手来说,它行不通。

只想从下拉列表中选择一项,它会自动更新文本框和 div。

当我使用当前代码时,它只显示任何选择的“if3”。

我尝试使用 else if 但要么我的代码有误,要么它不应该那样工作。

感谢您的反馈。

我环顾了整个网站,但没有找到解决方案。

这是我的代码:

    <script>
    function phoneNumber()
    {
var officeaddress=document.getElementById("officeaddress");

if (officeaddress.options="936 Broadway")
document.getElementById("enterphone").value="if1";
document.getElementById("enterfax").value="if1";
if(officeaddress.options="729 Seventh Avenue")
document.getElementById("enterphone").value="if2";
document.getElementById("enterfax").value="if2";
if(officeaddress.options="155 East 56th Street")
document.getElementById("enterphone").value="if3";
document.getElementById("enterfax").value="if3";


}


</script>


</head>

<body>

 <div class="textforms3">
       <select name="officeaddress" id="officeaddress" onchange="phoneNumber()">
        <option value="" selected="selected">Select Your Approved Main Office Address 
</option>
            <option value="936 Broadway" >936 Broadway</option>
            <option value="729 Seventh Avenue">729 Seventh Avenue</option>
            <option value="155 East 56th Street">155 East 56th Street</option>
      </select>
    </div>

<div class="enterphone"> 
       <input name="enterphone" type="text" id="enterphone" size="20" class="inputstyle" value="Phone Number"   />
       </div>
</body>
</html>

【问题讨论】:

    标签: javascript forms select onchange getelementbyid


    【解决方案1】:

    首先在您的if 语句中,您使用一个分配值的=。您需要使用=== 来测试值(查看here 以获取有关相等运算符的更多信息)。我还将测试选择的值或所选选项的值。像这样的。

    function phoneNumber() {
    
        var officeaddress = document.getElementById("officeaddress").options[document.getElementById("officeaddress").selectedIndex].value;
    
        if (officeaddress === "936 Broadway") {
          document.getElementById("enterphone").value = "if1";
          document.getElementById("enterfax").value = "if1";
        }
    
        if(officeaddress === "729 Seventh Avenue") {
          document.getElementById("enterphone").value = "if2";
          document.getElementById("enterfax").value = "if2";
        }
    
        if(officeaddress === "155 East 56th Street" ){
          document.getElementById("enterphone").value = "if3";
          document.getElementById("enterfax").value = "if3";
        }
    }
    

    您的代码还缺少花括号 {} 围绕您的 if 语句和一些基本格式。

    【讨论】:

    • 为什么使用 select.options[select.selectedIndex].value 而不是 select.value?
    • @Mark Walters,谢谢你。这非常有效。并感谢您对相等运算符的参考。我觉得这很简单。
    【解决方案2】:

    您粘贴的 html 没有任何 id 为“enterfax”的元素。因此,即使在建议的代码更正和所有格式之后,这也会中断:

    document.getElementById("enterfax").value="if1";
    //Uncaught TypeError: Cannot set property 'value' of null
    

    这是 JS 等价的空指针异常。您基本上是在尝试执行不正确的 null.value 。确保您以编程方式访问的任何内容都存在。

    【讨论】:

    • 你说得对,它不在里面,但我认为这并不重要。我的重点是获得有关 javascript 的反馈。谢谢拉贾特。
    猜你喜欢
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多