如何从jquery中的表单提交中获取所有切换值?

时间:2016-09-25 10:41:33

标签: javascript 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

例如,如果我选择&#34; elem 1&#34;和&#34; elem 2&#34;它每个都会切换两个复选框。但是当我使用:

检查值时
var params = compress(jQuery("#createMyForm").serialize());

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

它只发送&#34; elem 1&#34;的值。复选框并跳过&#34; elem 2&#34;复选框。我该如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

您似乎没有从多个下拉列表中获取所有选定的选项。

我建议使用。

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

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