2012-03-25 69 views
0

我有兩個相同的選擇框(當然除了它們的名字),我需要將第二個選擇框的值設置爲等於複選框被選中時的第一個值。這裏是我的代碼部分:如何設置一個等於另一個的選擇框?

<form id="theForm" name="theForm"> 

<select name="stateSelect" id="stateSelect"> 
     <option value="AL">Alabama</option> 
     <option value="AZ">Arizona</option> 
     <option value="AR">Arkansas</option> 
</select> 

<select name="stateSelect2" id="stateSelect2"> 
     <option value="AL">Alabama</option> 
     <option value="AZ">Arizona</option> 
     <option value="AR">Arkansas</option> 
</select> 

<input type="checkbox" name="checky" onClick="doStuff()"> 
</form> 

doStuff() 
{ 
    // change it from here 
} 

所以,我已經嘗試了一堆不同的東西,包括代碼我已經在論壇和SO發現,但似乎沒有任何工作。我應該在我的javascript函數中使用哪些代碼,以便在函數運行第二個選擇框時將其設置爲等於第一個?

感謝您的幫助!

+0

你有沒有啓用jQuery或其他JS框架?我寧願問,因爲沒有它會更復雜一些。 – haltabush 2012-03-25 23:40:22

+0

@haltabush - 不,我沒有任何框架:-( – Nate 2012-03-25 23:44:47

回答

3

試試這個:

var s1=document.getElementById('stateSelect'); 
var s2=document.getElementById('stateSelect2'); 
s1.onchange=function(){ 
    s2.value=s1.value; 
} 

演示:http://jsfiddle.net/rLEvD/

+0

Stewe - 謝謝,這看起來很有前途,但我恐怕我不太明白,我需要它稍微有點不同。有什麼辦法可以使第二個選擇框的值在任何舊函數內部改變,而不是你所做的特殊的一個? – Nate 2012-03-25 23:48:55

+0

是的,只需在函數中使用's2.value = s1.value;' – stewe 2012-03-25 23:51:38

+0

不是特別的跨瀏覽器,取決於具有相同值屬性的選項,它可能更適合使用's2.selectedIndex = s1.selectedIndex',在這種情況下給出相同的結果。 – RobG 2012-03-26 00:31:39

0

(其中#sel1是您的第一選擇的ID,#sel2是你的第二個選擇和#checkbox id爲您的複選框的ID :)

$('#checkbox').click(function(){ 
    if ($('#sel2').attr('disabled') != 'disabled') { 
     $('#sel2').attr('disabled', 'disabled'); 
     $('#sel2').val($('#sel1').val());}  
    else 
     $('#sel2').removeAttr('disabled'); 
}); 
    $('#sel1').change(function(){ 
    if ($('#sel2').attr('disabled') == 'disabled') 
     $('#sel2').val($(this).val()); 
}); 

http://jsfiddle.net/u4n7n/

+0

糟糕,在我發佈之前沒有看到你沒有使用框架。我想這就是我得到的假設...... – Aaron 2012-03-25 23:57:45

相關問題