我正在创建一个表单集,其中 select2 字段中的一个字段,当我单击添加更多时,我正在克隆该行。所有其他列都在克隆,但未显示选择 2。
function newSelect2WidgetInFormset (cell, prefix) {
var $cell = $(cell),
$script = $cell.find("script"),
$input = $cell.find("input[type=hidden][id^=id_]"),
scriptText, newId, newScriptText;
// Remove old container
$cell.find(".select2-container").remove();
**scriptText = $script.text();** --------------------- This script was coming blank and it could not generate the select2 field
newId = $input.attr("id");
console.log("Before", scriptText);
newScriptText = scriptText.replace(/id_[\d\w\-]+/g, newId);
$script.text(newScriptText);
console.log("After", newScriptText);
if (scriptText === newScriptText) {
console.warn("New script and old have some code");
console.warn("Should had been changed to ", newId);
}
// Script evaluation forced evaluation is needed because
// inserting elements with script tag does not make the browser
// to execute them
eval(newScriptText);
// swal("Script", newScriptText, "info");
}
注意:- 我们最近将 django_select2 从 4.2.2 更新到最新版本。当我在代码内部检查时,Select2Mixin 具有附加 render_js_code 函数的渲染方法
s += self.render_js_code(id_, name, value, attrs, choices)
但是在最新版本中,我找不到渲染方法甚至 render_js_code。它的替代品是什么,我们如何创建 select2 字段的克隆。
从过去的 3 周开始,我们一直在努力解决这个问题,团队/社区的任何帮助都会非常有用。