Javascript 空数组处理困难
我正在使用jQuery插件TagManager。 当表单初始化时,我在处理空数组时遇到问题,我不知道为什么。这是我的剧本Javascript 空数组处理困难,javascript,arrays,Javascript,Arrays,我正在使用jQuery插件TagManager。 当表单初始化时,我在处理空数组时遇到问题,我不知道为什么。这是我的剧本 $(".tm-input").each(function() { var e, l; e = $(this); l = e.data("load"); e.tagsManager({ prefilled: $.isEmptyObject(l) ? null : l }); }); 我将
$(".tm-input").each(function() {
var e, l;
e = $(this);
l = e.data("load");
e.tagsManager({
prefilled: $.isEmptyObject(l) ? null : l
});
});
我将数据属性数据加载
设置为要显示的值。如果
l
为空且不工作,则预填充
选项应设置为null。
如果我在上面的预填充
行中断,l
变量值为Array[0]
。如果我选中$.isEmptyObject(l)?null:l
它返回null,但显示的值是“[]”
。当数据加载
值为空时,它将正常工作
以下是受影响的表单html
<input class="tm-input" data-load="[]" placeholder="enter tags here" value="[]" type="text"></input>
有人能帮我弄清楚发生了什么事吗 以下更改可能对您有所帮助:
l = e.data("load") || 1 ;
如果未定义l,此行将自动为其赋值1。您可以根据需要分配任意值。事实证明,TagsManager插件处理空数组的方式存在问题。它忽略预填充选项,只显示“[]” 以下是我所做的工作,以防它能帮助其他人
$(".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会更好地处理该值
l
很可能是字符串“[]”
。如果我设置了一个断点,它的值是数组[0]。不管怎样,三元行不应该返回null吗?它正确地返回null,因为$。isEmptyObject([])==true
是的,但问题是,“[]”最终作为表单上的值。我可能不清楚问题出在哪里。问题是它忽略了设置预填充选项的“$.isEmptyObject(l)?null:l”,并将其设置为“[]”。所有其他值都正常工作。