2010-07-07 70 views
1

我有這樣的事情:jQuery的 - 從選擇輸入隱藏輸入值

<select class="bla"> 
    <option value="1">...</option> 
    <option value="2">...</option> 
</select> 

<select class="bla"> 
    <option value="1">...</option> 
    <option value="2">...</option> 
</select> 

<select class="bla"> 
    <option value="1">...</option> 
    <option value="2">...</option> 
</select> 

<input class="alloptions" type="hidden" value=""> 

我想隱藏的輸入字段的值來改變每一個不同的選項,在上述各選擇輸入字段選擇的時間。 該值將包含所有輸入字段中用逗號分隔的選定選項。

我該怎麼做?

+0

如果您使用標識符而不是類,則會更容易(並且更快啓動)。 – 2010-07-07 13:22:52

+0

*我希望隱藏的輸入字段值每次在上面的每個選擇輸入字段中選擇不同的選項時都會改變。*我認爲你不這樣做。你想解決什麼問題? – 2010-07-07 13:22:52

+0

好吧,我需要一個WordPress的小部件內的某個選項。問題是這個選項需要是一個數組,所以我需要一個輸入字段來模擬數組,所有的選擇值都以逗號分隔。然後在後端我使用爆炸從這個字符串創建一個數組。 – Alex 2010-07-07 13:35:53

回答

4

喜歡的東西:

$('select.bla').change(function() { 
    $value = $('select.bla').map(function(){return $(this).val()}).get().join(','); 
    $('input.alloptions').val($value); 
}); 

說明:

  • change()被炒魷魚只要選擇字段的值更改
  • 隨着map()我們創建select字段的值的數組, join他們以逗號分隔的字符串
+0

謝謝!這工作:D – Alex 2010-07-07 13:33:06

+0

謝謝,它幫助我很多! – 2017-03-15 11:06:29

0

的.serialize()方法可作用已經選擇單獨的形式的元素,例如「輸入」,「文本區域」 jQuery對象上,而「選擇」 - 這意味着你可以執行以下操作:

$('.bla').change(function(){ 
    var opts = $('select').serialize(); 
    $('.alloptions').val(opts); 
}); 

每個 「選擇」 需要一個名稱和值會產生:

selec1 = 1個&選擇2 = 2 &選擇3 = 1

0

你真的需要使用JavaScript是什麼?如果您將所有三個選擇框都賦予相同的「名稱」屬性,則這些值將以逗號分隔列表的形式發送到服務器。

只要確保在進行拆分時對每個元素進行修剪,因爲某些瀏覽器會在逗號後面放置空格。