2

我是 jQuery 新手,无法在下拉框中触发更改事件。

这是我的 HTML 标记

<select id="mini_bookinglocation" name="mini_bookinglocation">
    <option selected="selected" value="">Please Select</option>
</select>

这是我的jQuery

$("#mini_bookinglocation").change(function() 
{
    alert(" test ");
});

我试过把它放在文档准备块里面和外面,但似乎我无法让它工作。我没有看到警报出来。

我还需要在文档准备部分保留这些功能吗?

任何人都可以帮忙吗?

谢谢

只是补充一点,上面的值将使用 jQuery 动态传递。

4

4 回答 4

8

您在下拉列表中只有一个值。所以价值永远不会改变。这就是为什么.change不叫。尝试在选择框中添加更多选项。

你也应该在里面写 jQuery 代码document.ready

于 2013-01-09T07:19:09.073 回答
5

尝试添加更多选项,因为当值发生变化时会触发 change 事件。在您的情况下,值没有变化。

<select id="mini_bookinglocation" name="mini_bookinglocation">
    <option selected="selected" value="">Please Select</option>
    <option value="1">1</option>
    <option value="2">2</option>
   </select>

来自文档

当元素的值改变时,change 事件被发送到元素。对于选择框、复选框和单选按钮,当用户使用鼠标进行选择时会立即触发该事件,但对于其他元素类型,该事件会延迟到元素失去焦点为止。

我还需要在文档准备部分保留这些功能吗?

不,不需要将代码置于就绪函数下,因为发生更改时会触发事件

演示

于 2013-01-09T07:19:06.437 回答
1

在文档就绪函数中分配更改事件侦听器

<html>
    <head>
        <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
        <script type="text/javascript">

        $(document).ready(function() {
            $("#mini_bookinglocation").change(function() {
                alert(" test ");
            });
        });

        </script>
    </head>
    <body>
        <select id="mini_bookinglocation" name="mini_bookinglocation">
        <option selected="selected" value="">Please Select</option>
        <option value="A">Option A</option>
        <option value="B">Option B</option>
        <option value="C">Option C</option>
        <option value="D">Option D</option>
        <option value="E">Option E</option>
        </select>
    </body>
</html>

这是一个例子

于 2013-01-09T07:29:32.693 回答
0

我发现了问题。这是因为在我的代码中,我在一个地方使用 jQuery,而在另一个地方使用 $。我可以用谷歌搜索它,只是将所有内容都更改为 jQuery 并删除了所有 $ 并且它可以工作。很抱歉没有显示完整的代码,但我能够通过阅读所有答案学到很多东西。

谢谢大家的帮助。

于 2013-01-09T10:49:20.073 回答