1

我正在编写一个函数来将 json 对象转换为表单,并将其附加到 DOM。

我似乎无法正确使用语法;chrome 开发工具在第 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); 
});
};

有什么建议么?

4

1 回答 1

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 语句之上,您可能会发现这可以解决您的问题

于 2013-05-21T00:06:49.930 回答