onchange正在运行,但选择不更改的值

onchange runnning, but select value not changing

本文关键字:选择 运行 onchange      更新时间:2023-09-26

我有一个带有onchange函数的select。

问题-函数运行,但运行后,选择值本身不会更改(即,当您单击下拉菜单并单击某个选项时,它不会更改为所选的选项)。

我试图找到一些解决方案,但它们大多要么是select值根本不改变,要么是使用onclick而不是onchange。然而,如果我没有运行该函数,它运行得非常好。

这是HTML部分,我从帖子中排除了javascript和CSS部分,因为它会占用整个页面的

<select id="calcType1" oninput="checkShow('enter1',this)">
    <option value="val">Entered Value</option>
    <option value="saveVal">Saved Value</option>
    <option value="saveVal2">Saved Value 2</option>
    <option value="saveVal3">Saved Value 3</option>
</select>
<div class="noBreak shown" id="enter1">
    <input id="calcValue1" class="number"> ±
    <input id="calcUnc1" class="number">
</div>

Jsfidle演示:Fiddle

您使用的是赋值(=)运算符,而不是布尔等式(==或===)运算符。checkShow函数中的以下代码行是罪魁祸首:

if (dropdown.value = "val") {

它实际上应该读得更接近以下内容:

if (dropdown.value == "val") {

这导致下拉列表的值被指定为值"val",而不是检查它是否等于"val"。

我已经更新了摘录

http://jsfiddle.net/vkdyze8o/13/