2010-01-21 18 views
2

考虑以下几点:当一个2个选择框被改变,警报与价值对每个选择框

<div class="filters" id="filters"> 
<select id="state" name="state" tabindex="1" > 
<option value="">Filter by State</option> 
<option value="AL" >Alabama</option> 
<option value="AK" >Alaska</option> 
<option value="AZ" >Arizona</option> 
etc... 
</select> 

<select id="availability" availability="products" tabindex="2"> 
<option value="">Filter by Availability</option> 
<option value="yes">Available 24/7</option><option value="no">Not Available 24/7</option> 
</select> 
</div> 

将绑定到过滤器什么样的jQuery的魔力,所以任何时候选择输入(S )发生了变化,它会提示STATE和AVAILABILITY的值?

回答

4

尝试:

$('#filters > select').change (function() { 
    alert ($('#state').val()); 
    alert ($('#availability').val()); 
}); 
+0

所有这些答案都有效,但是这个似乎是最优雅的。 – AnApprentice 2010-01-21 03:24:37

+1

你想要'$('#state')'不是'$'#state''。 Parens是必要的。 – 2010-01-21 03:28:19

+0

@Randal - 更正 – 2010-01-21 06:02:54

1

使用一个选择器,它将选择并应用更改事件处理程序。在事件处理程序中使用每个名称的选择器来获取每个值。

$('#state,#availability').change(function() { 
    alert($('#availability').val();); 
    alert($('#state').val()); 
}); 

当然,如果需要,您可以获取值并连接它们以在单个警报中输出它们。

+0

'.vale()'?认为你在.change()函数的第二行有错字 – 2010-01-21 03:20:09

+0

为什么,是的,我做了。谢谢。 – tvanfosson 2010-01-21 04:45:08

1

您可以在两个选择中添加一个类,例如类= “twoselects” 和改变事件处理程序适用于他们两个:

$(".twoselects").change(function(){ 
     state = $("#state").val(); 
     avail = $("#availablility").val(); 
     //now do something 
    }); 
相关问题