2017-08-04 20 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數組添加到數據庫