Javascript: Выберите "Изменения формы" "Значение" в текстовом поле, но не обновляется при повторном выборе из того же раскрывающегося списка

Это просто, но для этого новичка это не сработает.

Просто нужно выбрать один из элементов из выпадающего списка, и он автоматически обновляет текстовое поле и делит.

Когда я делаю с текущим кодом, он показывает только "if3" для любого выбора.

Я попытался использовать else, если, но либо у меня неправильный код, либо он не должен работать таким образом.

Ваше мнение приветствуется.

Я осмотрел весь этот сайт и не нашел решения.

Вот мой код:

    <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>

2 ответа

Решение

Во-первых, в вашем if заявления вы используете один = который присваивает значения. Вам нужно использовать === для проверки значений (смотрите здесь для получения дополнительной информации об операторах равенства). Также я бы проверил на значение выбора или значение выбранного параметра. Что-то вроде этого.

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 заявления и некоторые основные форматирования.

В HTML-код, который вы вставили, нет элемента с идентификатором 'enterfax'. Так что даже после предложенного исправления кода и всего форматирования это сломается:

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

Это JS-эквивалент исключения нулевого указателя. Вы в основном пытаетесь использовать null.value, что неверно. Убедитесь, что все, к чему вы обращаетесь программно, существует.

Другие вопросы по тегам