我有多个选择框,如下所示:
<form action="foo" method="post" id="form">
<select id="one">
<option value="foo1"></option>
<option value="foo2"></option>
<option value="foo3"></option>
</select>
<select id="two">
<option value="bar1"></option>
<option value="bar2"></option>
<option value="bar3"></option>
</select>
<select id="three">
<option value="baz1"></option>
<option value="baz2"></option>
<option value="baz3"></option>
</select>
</form>
现在,如果这三个盒子中的任何一个改变了,我想知道它们中的哪一个。我试着像下面那样,但我只得到第一个盒子的id。我是否必须为每个选择编写它,或者是否有办法获取更改的选择框的ID?
$(document).ready(function() {
$('#form').change(function() {
var strChosen = $('select').attr('id');
alert(strChosen);
});
});
答案 0 :(得分:5)
使用 this
关键字并将您的选择器更改为$('#form select')
$(document).ready(function() {
$('#form select').change(function() {
var strChosen = $(this).attr('id');
alert(strChosen);
});
});
注意:您也可以.on()
事件使用change
方法
$('#form select').on('change',function() {});
有关语法的更多信息,请参阅@ sbaaaang的answer
答案 1 :(得分:3)
$(function(){
$('select').on('change',function(){
var id = $(this).attr('id');
alert(id);
});
});
答案 2 :(得分:1)
$('select').change(function() {
alert($(this).attr('id'));
});
答案 3 :(得分:0)
注册select
元素的更改处理程序,然后在处理程序中使用this.id
以获取select元素的id
$(document).ready(function () {
$('#form select').change(function () {
var strChosen = this.id;
alert(strChosen);
});
});
演示:Fiddle
答案 4 :(得分:0)
您在表单上使用.change()事件。那是错的。
将select元素与下面的更改事件一起使用。
$(document).ready(function() {
$('select').change(function() {
var strChosen = $(this).attr('id');
alert(strChosen);
});
以下是工作演示:http://jsfiddle.net/n46Be/
答案 5 :(得分:0)
首先,您需要绑定选择框的更改事件,而不是像以下那样的形式:
$(document).ready(function(){
$('select').change(function (e){
});
});
然后你就可以在变更处理程序中找到更改的选择框的id,放在代码下面。
var selectedId = this.id;
结尾代码如下所示:
$(document).ready(function(){
$('select').change(function (e){
var selectedId = this.id;
alert(selectedId);
});
});
感谢..