我正在编写一个函数将json对象转换为表单,并将其附加到DOM。
我似乎无法正确理解语法; chrome dev工具在第15行给出了“Uncaught SyntaxError:Unexpected identifier”错误。
我正在尝试支持广播,复选框和标准文本或文本框等表单案例。我不确定如何将电台与复选框区分开来。
这是我到目前为止所做的:
jQuery.fn.toForm = function(obj) {
var target = this;
var form = document.createElement("form");
form.setAttribute('method', "post");
form.setAttribute('action', "submit.php");
$.each(obj, function(key, value){
var inputCheckbox = $("<input type='checkbox' value='"+value+"' />");
var inputStandard = $("<input type='text' value='"+value+"' />");
if(typeOf value === 'boolean'){
inputCheckbox.attr("id", key).attr("name", key).appendTo("form");
form.append(inputCheckbox);
}
else {
inputStandard.attr("id", key).attr("name", key).appendTo("form");
}
target.append(form);
});
};
有什么建议吗?
答案 0 :(得分:0)
问题似乎在
行inputCheckbox.attr("id", key).attr("name", key).appendTo("form");
JQuery在添加到dom中尚未出现的元素时可能不可靠(我相信这特别适用于JQuery 1.9+ - 请参阅http://bugs.jqueryui.com/ticket/8858(最后评论)以确认错误。)
如果你移动
target.append(form);
在if语句之上,您可能会发现这可以解决您的问题