更改事件不会触发第一个选项值

时间:2014-07-17 13:34:32

标签: jquery html5

我有一个菜单html选择标记,其中包含一些菜单:

<select class="menu">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="4">Four</option>
    <option value="5">Five</option>
</select>

我正在聆听change事件的选项选择。

$(".menu").change(function (evt) {
    alert($(evt.target).val())

})

问题是第一个选项值(一个)已被选中,并且选项不会触发该选项的change事件。

http://jsfiddle.net/navyad/Yfs4u/205/

任何方式?

5 个答案:

答案 0 :(得分:4)

你应该第一次trigger

$(".menu").change(function (evt) {
    alert($(evt.target).val())
}).change(); // or .trigger('change');

DEMO

答案 1 :(得分:1)

我为此苦苦思索了很长时间,@ holmes2136提出的添加触发器的建议对我很有用。谢谢。

$(".menu").change(function (evt) {
   alert($(evt.target).val());
}).trigger('change');

答案 2 :(得分:0)

您可以添加虚拟值:

<select class="menu">
    <option value="">Select one...</option>

答案 3 :(得分:0)

尝试以下代码

$(".menu").change(function (evt) {
   alert($(evt.target).val());
}).trigger('change');

答案 4 :(得分:0)

我今天刚遇到这个问题。你可以这样解决问题:

最初只设置没有任何值的select标签,然后所有选项都可以选择:

document.querySelector('.menu').value = '';

然后添加你的addEventListener。