【问题标题】:Can I use Laravel 5 to clone a select box and still use form model binding?我可以使用 Laravel 5 克隆选择框并仍然使用表单模型绑定吗?
【发布时间】:2015-05-07 14:33:15
【问题描述】:

(请原谅多方面的问题!)

基本上问题是;如何使用 Laravel 5 功能克隆选择框,保存该数据,并且(作为奖励)返回表单时使用表单模型绑定显示数据。因此,如果有一个工作经验“组”(即公司和职位)或多个,它们都会正确显示。

我创建了一个包含以下字段的表单:

<div class="workexperience">
<!--Work Experience / position   -->
<!--  Form Input -->
<div class="form-group">
{!!Form::label('positions_list', 'Work Experience:')!!}
{!!Form::select('positions_list', $positions, null, ['id'=> 'positions_list', 'class'=>'form-control','multiple'])!!}
</div>
<!--company-->
<div class="form-group" >
{!!Form::label('companies_list', 'Company:')!!}
{!!Form::select('companies_list', $companies, null, ['id'=>'companies_list','class'=>'form-control','multiple'])!!}
</div>
</div>
<div id="workexperience-placeholder"></div>
<a onclick="cloneMe('#workexperience')" class="btn btn-default btn-block"><span class="icon-entypo icon-plus"></span><b>Add Another</b></a>

并且我正在使用 jquery clone 来允许用户添加新的职位和公司集

function cloneMe(thisDiv)
{
$(thisDiv).clone(false).insertBefore(thisDiv+"-placeholder:last")

}

从视觉上看,这似乎工作,因为它确实克隆了盒子。但是,我正在使用 Select2 来创建“标签”效果(来自 Laracasts-23 '同步标签'!),并且当我单击以克隆数据框时,如果下拉列表中已经选择了数据(实际上是“标签”)带到新的克隆领域。

如何以不携带所选项目的方式进行克隆?我曾尝试使用 jquery,例如:

.find("input").val('').end()

但我没有运气(我也尝试过选择而不是上面的输入)

我确信我正在尝试做的事情实际上是相当普遍的,但只是在努力寻找一种方法来做到这一点。 (我也尝试过 cloneya,但这似乎与 Select2 冲突。)

如果您对如何改进我的问题有任何建议,请告诉我。

提前致谢!

姆鲁兹

【问题讨论】:

  • Select2 是什么版本?
  • 嗨@kevin-brown - Select2 的版本是“Select2 4.0.0-rc.2”
  • 好的,慢慢来……如果我只克隆一个选择框,我可以使用: .removeAttr("selected") .val([]) 但是如果我尝试,我仍然没有运气克隆整个 div。我不知道如何针对单个新克隆的选择

标签: php laravel-5 jquery-select2 model-binding jquery-cloneya


【解决方案1】:

我通过针对每个单独的选择解决了我的问题:

$('.positions').select2("destroy");
$('#workexperience').clone(true).insertBefore("#workexperience-placeholder:last")
.end();
$('.positions:last').removeAttr("selected")
.val([])
.end();
$('.positions').select2(
{
placeholder: 'Current or last position',
maximumSelectionLength: 1,
tags: true
}); 

不是很优雅,但对我有用。

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 2019-02-24
    • 2021-11-14
    • 2011-03-02
    • 1970-01-01
    • 2015-12-17
    • 2012-08-03
    • 2016-01-13
    相关资源
    最近更新 更多