2016-09-25 42 views
0

我有一個多選字段,當選擇多個選項時可以切換更多字段。例如如何從jQuery中的表單提交所有切換值?

<label for="projectType">Project Type<span class="icon-required">Required</span></label> 
    <select multiple="multiple" id="my-select" name="my-select[]"> 
      <option value='elem_1'>elem 1</option> 
      <option value='elem_2'>elem 2</option> 
      <option value='elem_3'>elem 3</option> 
      <option value='elem_4'>elem 4</option> 
      </select> 

#if($existelem1.Type1) 
    <fieldset class="group elem1" style="display:none;"> 
     <legend><span>Type1</span></legend> 
     #foreach($elem1coll in $elem1collOptions) 
      <span class="radio"> 
        <input class="radio" type="radio" name="Type1" id="elem1coll_${elem1coll}" value="$elem1coll"#if("${Type1}" == $elem1coll) checked="checked" #end> 
        <label for="elem1coll_${elem1coll}">$elem1coll</label> 
       </span> 
     #end 
    </fieldset> 
#end 
#if($existelem1.Type2) 
    <fieldset class="group elem1" style="display:none;"> 
     <legend><span>Type2</span></legend> 
       <span class="radio"> 
        #foreach($elem1Po in $elem1PoOptions) 
         <input class="radio" type="radio" name="Type2" id="elem1Po_${elem1Po}" value="$elem1Po"#if("${Type2}" == $elem1Po) checked="checked" #end> 
        <label for="elem1Po_${elem1Po}">$elem1Po</label> 
        #end 
       </span> 
    </fieldset> 
#end 

例如如果我選擇「ELEM 1」和「2 ELEM」它切換兩個複選框each.But當我檢查使用的值:

var params = compress(jQuery("#createMyForm").serialize()); 

console.log(params) 
prints projectType=elem1,elem2&elem1.Type1=Yes&elem1.Type2=Yes&elem2.Type1=&elem2.Type1=& 

它僅發送的值「 elem 1「複選框並跳過」elem 2「複選框。我怎樣才能解決這個問題。

+0

什麼是'compress'? – shennan

+0

你可以創建jsfiddle嗎? –

+0

@shennan Compress是一個函數,只是將所有輸入作爲字符串附加。就這個問題而言,這裏一點都不重要。 –

回答

0

看來你並沒有從多個下拉菜單中獲取所有選定的選項。

我會推薦使用。

var values = []; 
var keys = []; 

$('#my-select :selected').each(function(i, selectedElement) { 
    values[i] = $(selectedElement).val(); 
    keys[i] = $(selectedElement).text(); 
}); 
+1

這就是jquery.serialize的作用 –

相關問題