jQuery克隆和修改GUID
Formstone Classic Selecter - jQuery Clone and Modify GUID
是否有可能使用jQuery克隆来增加对象的当前GUID ?
目前,当选择器被初始化时,所有的选择,包括隐藏的,都会被分配一个GUID。
克隆过程只是复制模板div。问题是它也克隆隐藏选择的GUID,这意味着任何动态添加的选择都无法使用,因为多个选择共享相同的GUID。
要在表单上实现所有选择,我使用下面的代码:
$(document).ready(function () {
$("select").selecter();
});
创建包含select的行克隆的代码如下:
$('.addButton').on('click', function () {
var $template = $('#Template'),
$clone = $template
.clone(true, true)
.removeClass('hide')
.removeAttr('id')
.attr('title', 'DynamicRow')
.insertBefore($template);
$("#Form").validate();
$clone.find('[name="Type[]"]').rules("add", { required: true });
});
我还包含了下面的HTML来演示正在克隆的内容:
<div class="fieldset">
<div class="col-sm-1">
<div>
<button type="button" class="btn btn-default addButton"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="col-sm-11">
<div class="field">
@Html.LabelFor(model => model.Type)
<select name="Type[]" id="Type[]">
<option value="">Type</option>
<option value="1">Other</option>
<option value="2">Maintenance</option>
<option value="3">Attendance</option>
</select>
</div>
</div>
</div>
<div class="fieldset hide" id="Template">
<div class="col-sm-1">
<div>
<button type="button" class="btn btn-default removeButton"><i class="fa fa-minus"></i></button>
</div>
</div>
<div class="col-sm-11">
<div class="field">
@Html.LabelFor(model => model.Type)
<select name="Type[]" id="Type[]">
<option value="">Type</option>
<option value="1">Other</option>
<option value="2">Maintenance</option>
<option value="3">Attendance</option>
</select>
</div>
</div>
</div>
Formstone经典选择器库位于:
https://github.com/FormstoneClassic/Selecter/blob/master/jquery.fs.selecter.js我能找到的唯一的解决方案是单独初始化每个表单选择,因此$("select").selecter();
不能用作初始化所有选择,包括隐藏的。