2015-08-15 198 views
1

我有一個複選框列表。當用戶選擇它們並單擊發送電子郵件按鈕時,將打開一個模式並填寫表單。如何在select2中選擇複選框中的選項?

該表單有一個select2字段,其中列出了來自數據庫的AJAX電子郵件。如何默認選擇那些先前在複選框中打勾的選項?

function formatRepo (repo) { 
 
    if (repo.loading) return repo.text; 
 

 
    var markup = '<div class="clearfix">' + 
 
     '<div class="col-sm-5">' + repo.nome + '</div>' + 
 
     '<div class="col-sm-10"><i class="fa fa-envelope"></i> ' + repo.email + '</div>' + 
 
     '</div>'; 
 

 
    return markup; 
 
} 
 

 
function formatRepoSelection (repo) { 
 
    return repo.nome || repo.email; 
 
} 
 

 
$(document).ready(function() { 
 
    $('.emails').click(function() { 
 
    $("input[type=checkbox][name='id[]']:checked").each(function() { 
 
     $('div.destinatarios select').val($(this)); 
 
    }); 
 
    }); 
 

 
    $(".destinatarios").select2({ 
 
    ajax: { 
 
     url: "<?php echo site_url('admin/clientes/listarAjax')?>", 
 
     dataType: 'json', 
 
     delay: 250, 
 
     data: function (params) { 
 
     return { 
 
      busca: params.term 
 
     }; 
 
     }, 
 
     processResults: function (data) { 
 
     return { 
 
      results: data.items 
 
     }; 
 
     }, 
 
     cache: true 
 
    }, 
 
    escapeMarkup: function (markup) { return markup; }, // let our custom formatter work 
 
    templateResult: formatRepo, // omitted for brevity, see the source of this page 
 
    templateSelection: formatRepoSelection, // omitted for brevity, see the source of this page 
 
    width: '100%' 
 
    }); 
 
});
<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css" rel="stylesheet"/> 
 

 
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.js"></script> 
 

 
<input type="checkbox" name="id[]" value="<?php echo $row->id; ?>" class="check"> 
 
<a class="btn btn-primary emails" data-toggle="modal" data-placement="top" title="Enviar E-mail" data-target="#emailModel">Enviar E-mail</a> 
 

 
<select class="col-sm-8 col-lg-8 form-control destinatarios" multiple="multiple"> 
 
</select>

+0

的可能重複的功能[選擇4.0 - 推後創建新條目(http://stackoverflow.com/questions/29058625/select2-4 -0-push-new-entry-after-creation) –

+0

或[Select2 4.0.0 with Ajax初始值](http://stackoverflow.com/q/30316586/359284) –

回答

0

只是將它們傳遞到您的模態功能,因爲我沒有看到任何代碼您的模態功能,所以我給你舉個例子

從您的複選框你得到了在你的模態函數值

[1,2,3,4] 

function modalOpen(arrayofcheckboxes){ 

} 

當您打開模式使用這樣

modalOpen([1,2,3,4]); 
+0

我得到了值,我只需要它們在select2輸入處選擇。 –