使用Jquery动态创建对象

时间:2010-10-09 01:55:56

标签: forms jquery-selectors object

我正在尝试从表单中动态创建对象,但我希望省略一些reduntant元素,例如submit。

唯一的问题是我的功能不会省略这些字段。

    function form_to_json(formname) {

    var obj = new Object();

    var identity = "#" + formname + " input";

// Create JSON strings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    $(identity).each(function() {

        if ($(this).val() != "Submit" || $(this).attr('name') != "password2") {

            var propertyName  = $(this).attr('name');
            var propertyValue = $(this).val();

            eval("obj." + propertyName + "='" + propertyValue + "'");               
        }
    });

    var jsonObj = JSON.stringify(obj);

    return jsonObj;
}

输出吐出一个漂亮的小json对象唯一的问题是它没有省略我要求它的表单元素。

是否与选择器有关?

2 个答案:

答案 0 :(得分:0)

好吧,我刚刚进行了头脑风暴,并尝试将if语句分成两部分......

if ($(this).val() != "Submit") {

                if ($(this).attr('name') != "password2") {

                    var propertyName = $(this).attr('name');
                    var propertyValue = $(this).val();

                    eval("obj." + propertyName + "='" + propertyValue + "'");
                }           
            }

这确实有效。

答案 1 :(得分:0)

你也可以单独使用if条件。您只需将OR条件更改为AND

即可
if ($(this).val() != "Submit" && $(this).attr('name') != "password2") {