2016-09-25 6 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」と「elemは2」を選択した場合には、2つのチェックボックスを切り替え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

「圧縮」とは何ですか? – 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の機能です –

関連する問題