2010-01-21 76 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 
    }); 
相關問題