2010-10-09 77 views
0

我想动态创建对象的形式,但我想要省略一些reduntant元素,如提交。使用jquery动态创建对象

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

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对象唯一的问题是它不会省略我要求的表单元素。

这与选择器有关吗?

回答

0

好,我只是灵机一动,并试图分裂if语句分成两...

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

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

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

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

该做的工作。

0

如果条件允许,也可以在单个条件下完成。您只需将OR条件更改为AND

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