2017-08-04 69 views
-1

我有这样的代码:的Javascript从多个提交选择

<div class="st-form-line"> 
     <span class="st-labeltext">Countries</span> 
     <label class="margin-right10"><input type="radio" id="members_create_campaign_form_countrySelectionType_0" name="members_create_campaign_form[countrySelectionType]" required="required" value="0" checked="checked" /> All</label> 
     <label class="margin-right10"><input type="radio" id="members_create_campaign_form_countrySelectionType_1" name="members_create_campaign_form[countrySelectionType]" required="required" value="1"/> Selected</label> 
     <div id="clist_div" class="simplebox cgrid540-right" style="display:none;"> 
      <div style="padding:5px"></div> 
      <div class="simplebox cgrid200-left"> 
       <p style="text-align:center;"><b>Excluded Countries</b></p> 
       <select size="10" name="excluded2" style="width:200px; height:160px;" onDblClick="moveSelectedOptions(this.form['excluded2'],this.form['countries[]'])" multiple > 
                       <?php foreach($arrayCountries as $country) {?> 
               <option value="<?= $country ?>" ><?= $country ?></option> 
              <?php } ?> 

       </select> 
      </div> 
      <div class="simplebox cgrid40-left"> 
       <input class="button-blue" type="button" name="right" value="&gt;&gt;" onclick="moveSelectedOptions(this.form['excluded2'],this.form['countries[]'])"><br/><br/> 
       <input class="button-blue" type="button" name="left" value="&lt;&lt;" onclick="moveSelectedOptions(this.form['countries[]'],this.form['excluded2'])"> 
      </div> 
      <div class="simplebox cgrid200-left"> 
       <p style="text-align:center;"><b>Selected Countries</b></p> 
       <select size="10" id="members_create_campaign_form_countries" name="countries[]" style="width:200px; height:160px;" onDblClick="moveSelectedOptions(this.form['countries[]'],this.form['excluded2'])" multiple > 
             </select> 
      </div> 

     </div> 
     <div class="clear"></div> 

    </div> 

此代码是这样的: enter image description here

后,我选择从左侧有些国家加入我右边,OK,这是好的,但我的问题是,如果没有被选中,因为在这张照片 enter image description here

没有添加在我的数据库,并在这screnshoot它只添加加拿大和德国是选择通常我想添加右侧添加的所有国家。

这是js代码:

<script type="text/javascript"> 
$(document).ready(function() { 
    if ($('#members_create_campaign_form_countrySelectionType_1').is(':checked')) { 
     $('#clist_div').show('slow'); 
    } 
    $('#members_create_campaign_form_countrySelectionType_0').click(function() { 
     $('#clist_div').hide('slow'); 
    }); 
    $('#members_create_campaign_form_countrySelectionType_1').click(function() { 
     $('#clist_div').show('slow'); 
    }); 

    function selectDiff(s1Id, s2Id) { 
     var selected = $('#' + s2Id + ' option').map(function(){ 
      return this.value; 
     }).get() 

     var excluded = $('#' + s1Id + ' option').each(function() { 
      if (selected.indexOf(this.value) != -1) { 
       selected.splice(selected.indexOf(this.value), 1); 
       $(this).remove(); 
      } 
     }).get() 
    }; 

    selectDiff('clist_div', 'members_create_campaign_form_countries'); 
}); 

+0

您在哪里提交表单? – Luca

+1

SELECT的行为正常。您刚刚创建了第二个SELECT,其中第一个来自第一个SELECT,但只有选定的OPTION从SELECT提交。 –

+0

是不是这个,我的表单正在工作,正在添加,但是只在右侧添加时,我再次选择像第二次screnshoot,仅添加不是所有从右侧,我认为是从js代码 – user3266370

回答

0

1:需要select the all选项selected countrieson submit

第二:简单的selected countries

添加 selected attribute

注意:因此,如果您添加到selected countries和从selected countries删除意味着。选项loose the selectedattribute,所以你需要添加selected attribute上提交

$(document).on('submit','#submit_button',function(){ 

    $('#members_create_campaign_form_countries option').prop('selected',true); 

}); 
0

你可以把选定的国家作为阵列和继续推动一些国家在这一点。

例如:

var selected_countries = [];

//在特定国家

selected_countries.push( '国家选择');

使用selected_countries数组添加到数据库