2011-07-03 69 views
0

我有以下選擇選項:如何使用jquery獲取兩個選定選項的值?

<select id="optionA"> 
<option> A </option> 
<option> B </option> 
<option> C </option> 
</select> 

<select id="optionB"> 
<option> D </option> 
<option> E </option> 
<option> F </option> 
</select> 

以下jQuery代碼不工作,以確定每個所選選項的文本值:

<script type="text/javascript"> 
    $(document).ready(function() 
     { 
      if($("#optionA").change() || ($("#optionB").change()) 
      { 
       var textA = $(this).find("#optionA option:selected").text(); 
       var textB = $(this).find("#optionB option:selected").text(); 
       alert(+ textA + " " + textB); 
      } 
     }); 
</script> 

任何想法可能是什麼問題?

回答

0
$('#optionA, #optionB').change(function() 
{ 
    alert($('#optionA').val() + ' ' + $('#optionB').val()); 
}); 

http://jsfiddle.net/upZKt/1/

+0

感謝AlienWebguy – BWR

+0

這是最好的解決方案,因爲我可以替換警報功能並將它與選項A和B與文件名相關聯。 – BWR

0

你需要編寫你的事件處理程序是這樣的:

$("#optionA,#optionB").change(function() { 
    var textA = $("#optionA").val(); 
    var textB = $("#optionB").val(); 
    alert(+ textA + " " + textB); 
}); 
+0

無需LO確定在選項中,只有選擇val() – AlienWebguy

+0

@AlienWebguy你是對的,我剛剛複製和粘貼不相關的部分。 –

0

change()需要一個回調函數作爲事件處理程序時變化事件觸發。

您需要將代碼從您的if block範圍內移至回調函數。 注:我也壓縮了選擇器和邏輯,以利用更多的jQuery風格。

$("#optionA, #optionB").change(function() { 
    var textA = $("#optionA").val(); 
    var textB = $("#optionB").val(); 
    alert(textA + " " + textB); 
}); 

看到它在行動 - http://jsfiddle.net/G4Lpm/1/

+0

這將只顯示當前更改的值,而不是兩者。 – AlienWebguy

+0

@AlienWebguy,我知道。看我的**注**。 –

+0

我看到它,但它沒有做他所問的,這是顯示兩個選擇值。 – AlienWebguy

2

我建議如下:

<select id="optionA"> 
    <option value="A"> A </option> 
    <option value="B"> B </option> 
    <option value="C"> C </option> 
</select> 

<select id="optionB"> 
    <option value="D"> D </option> 
    <option value="E"> E </option> 
    <option value="F"> F </option> 
</select> 

<script type="text/javascript"> 
    function selectChanged() { 
     var textA = $("#optionA").val(); 
     var textB = $("#optionB").val(); 
     alert(textA + " " + textB); 
    } 

    $(document).ready(function() { 
     $("#optionA,#optionB").change(selectChanged); 
    }); 
</script> 

例子:http://jsfiddle.net/crnrY/

+0

謝謝你,你的代碼是我可以根據我的問題工作的唯一一個。 – BWR

+0

我沒有看到一個大的綠色複選標記 - 確保你接受aroth的答案,如果它適合你,那麼他可以得到他的觀點和認可。 – AlienWebguy

相關問題