2011-08-04 57 views
0

我製造具有這樣設置索引

<select class="nace"> 
<option value="no" selected="selected">No</option> 
<option value="yes">Yes</option> 
</select> 

我想寫一個jQuery代碼段,這將改變類別的所有這些選擇的選擇不同的選擇元素的形式「nace」,所以選擇的價值都是一致的。但我在功能上掙扎了一下。 到目前爲止,我有一個事件綁定到選擇的變化,但不能完全正確。誰能幫我?

$('.nace').change(function() { 
     var selected = $(this).val(); 
     $('.nace option:selected="selected"').each(function(){ 
      $(this+' option[value='+$(this).value+']').attr('selected', 'selected'); 

     }); 
    }); 

回答

2

我就剛纔這個說:

$(document).ready(function() { 
$('.nace').change(function() { 
     var selected = $(this).val(); 
     $('.nace').val(selected); 
    }); 
}); 
+0

神奇,謝謝你有這麼多,我想我幾乎在那裏,但試圖過度複雜它:) – Alistair

1

試試這個

JAVACSRIPT

$('.nace').change(function() { 
    var selected = $(this).val(); 
    $('.nace').each(function(){ 
     $(this).val(selected); 
    }); 
}); 

HTML這裏

<select class="nace"> 
    <option value="no" selected="selected">No</option> 
    <option value="yes">Yes</option> 
</select> 

<select class="nace"> 
    <option value="no" selected="selected">No</option> 
    <option value="yes">Yes</option> 
</select> 

<select class="nace"> 
    <option value="no" selected="selected">No</option> 
    <option value="yes">Yes</option> 
</select> 

http://jsfiddle.net/FwYmf/

+0

+1 - 只是爲了讓你知道,你並不需要的「每個」。 jQuery將通過所有匹配元素。只要應用'$('。nace').val(選擇)'將它們全部設置爲相同的值:) –

+0

你不需要'each'。如果您只是使用'$('。nace')。val(...);' –

+0

正確,那麼集合中的每個元素都會受到影響。我只是看着它,結果你不需要。每個 – LeeR

1

這應該是足夠了:

var $nace = $('.nace').change(function() { 
    $nace.val($(this).val()); 
    // or (but not necessary) $nace.not(this).val($(this).val()); 
}); 

OT:如果您select場只有兩種選擇,可以考慮使用單選按鈕。