捕获<的最佳方式是什么?选择>改变事件?我有一个具有不同输入元素的表单但我想仅在<的情况下触发事件。选择>更改。我不想使用ID,因为表单上有很多选择。
非常感谢提前!
答案 0 :(得分:10)
如果您只想在页面中选择某些来获取更改事件,则可以向其添加一个类,如下所示:
<select class='choose_me'>...</select>
<!-- later on in the page... -->
<select class='choose_me'>...</select>
然后,您可以通过执行以下操作来捕获任何这些更改事件:
$('select.choose_me').change(function() { .... } );
如果要选择所有选项,只需将选择器更改为
即可$('select').change(function() { });
在函数内部,您可以使用$(this)
来引用选择元素,所以代码如下:
$('select.choose_me').change(function() {
alert($(this).val());
});
会在更改<select>
类时提醒任何choose_me
代码的所选选项。
答案 1 :(得分:3)
对于这样的选择:
<select id="item_select" name="item">
<option>Select an Item</option>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
</select>
您执行以下操作:
<script type="text/javascript">
$(document).ready(function(){
$("#item_select").change(function()
{
// do your stuff
});
});
</script>
现在,如果您不想使用id(尽管表单中的每个选择都可以只有其个人ID),您也可以使用任何其他CSS选择器(“form select:first-child”)< / p>
答案 2 :(得分:2)
接受和建议的答案缺少一个重点:如果用户使用键盘(例如箭头键或字母)导航选项框,则不会捕获更改。
您需要再添加一个事件,即“keydown”,并将其绑定到控件。
这样的事情:
$('select.foo').bind('change keyup',function() { // do something amazingly clever like alert($(this).val()); });
答案 3 :(得分:0)
您可以使用选择器“select”,如下所示:
$("select").change(function () {
});
您可以使用
访问生成事件的选择$(this)