我正在使用jQuery插件TagManager。 当表单初始化时我无法处理空数组,我无法弄清楚原因。这是我的剧本;
$(".tm-input").each(function() {
var e, l;
e = $(this);
l = e.data("load");
e.tagsManager({
prefilled: $.isEmptyObject(l) ? null : l
});
});
我将数据属性data-load
设置为我想要显示的值
如果prefilled
为空并且它不起作用,则l
选项应设置为null。
如果我在上面的prefilled
行中断,则l
变量值为Array[0]
。如果我检查$.isEmptyObject(l) ? null : l
它返回null,但显示的值是"[]"
。当data-load
值为null时,它可以正常工作。
以下是受影响的表单html;
<input class="tm-input" data-load="[]" placeholder="enter tags here" value="[]" type="text"></input>
有人可以帮我弄清楚发生了什么吗?
答案 0 :(得分:1)
以下更改可能会对您有所帮助:
l = e.data("load") || 1 ;
如果 l 未定义,此行会自动为其指定值 1 。您可以根据需要指定所需的任何值。
答案 1 :(得分:0)
事实证明,这是TagsManager插件处理空数组的方式的问题。它会忽略预填充选项,只显示&#34; []&#34;。
我在这里做了什么来解决它,这可以帮助别人;
$(".tm-input").each(function() {
var e, l;
e = $(this);
l = e.data("load");
if ($.isEmptyObject(l)) {
l = null;
e.val("");
}
e.tagsManager({
prefilled: l
});
如果输入元素值为空数组,则会强制输入该元素值为空数组,而TagsManager处理得更好。