天天看點

javascript:巧用eval函數組裝表單輸入項為json對象

在ajax方式做web開發時,經常會遇到會儲存前,收集表單輸入項,組成json對象,然後把對象直接post到服務端的場景

正常做法是在js裡寫類似如下的代碼:

表單元素不多的時候,這樣還好,但是如果一個表單有好幾十項甚至更多輸入項的時候,寫這種代碼就太費勁了。

好在javascript中有一個邪惡的eval函數,可以幫我們完成一些類似c#反射的工作,比如下面這樣:

 這樣,我們就動态建立了一個複合對象A,明白其中原理後,可以對表單做些改進:

 這樣,隻要form元素的name屬性正确設定,需要收集表單對象時,調用一下setFormModel函數,就能快速得到一個json對象(當然這隻是示例,僅處理了一級屬性的情況,如果有多級屬性,大家自己去擴充吧,無非就是字元串上做些文章)

繼續閱讀