2010-10-09 68 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") {