在<select> HTML元素中响应Onclick

时间:2017-04-15 00:22:18

标签: javascript select onclick tags element

我在HTML中创建了一个选择元素下拉列表。 select标签有三个选项。 “onclick”JS事件附加到select标记。在JavaScript中,我有一个匹配的函数,当且仅当选择了第一个选项时才会提醒用户。这是一个带有我的代码的JSFiddle。 https://jsfiddle.net/TempusF/rad11vgx/12/ 我遇到的问题是,在Firefox for mac上,只有在您首先选择其他选项时才会显示此警报。也就是说,如果页面加载并显示“Zone 1”,则第二次单击Zone 1将不会触发警报。您必须单击“区域2”或“区域3”,然后单击“返回区域1”以获取警报。 但是,在Firefox for Windows上,任何单击Zone 1选项的选项都将显示警报。 这让我相信,当一个不同的事件更具惯用性时,我错误地使用了onclick事件。也许期望我在select元素下面有一个触发警报功能的按钮,从而推迟执行。但是,我想创建一个接口,当选择了select选项时,它会立即作出反应。 这是HTML: &lt; select id =“zoneSelect”onclick =“updateChar();”&gt;   &lt; option value =“zone1”&gt; Zone 1&lt; / option&gt;   &lt; option value =“zone2”&gt; Zone 2&lt; / option&gt;   &lt; option value =“zone3”&gt; Zone 3&lt; / option&gt; &LT; /选择&GT; 这是ecmascript。 function updateChar(){     var zone = document.getElementById(“zoneSelect”);     if(zone.value ==“zone1”){         警报(“你点击了第1区”);     } }

1 个答案:

答案 0 :(得分:1)

您不应在现代html中使用onclick,但您可以尝试以下操作:

onchange="updateChar();

更好的是,您应该在启动代码中设置事件处理程序。无论如何,它仍然是change事件。

另外,我建议下拉菜单以无害的空值开头,这样你就不会默认为第一个值 - 当然,除非这是意图:

 <option value="">Choose one …</option>