在ajax方式做web開發時,經常會遇到會儲存前,收集表單輸入項,組成json對象,然後把對象直接post到服務端的場景
正常做法是在js裡寫類似如下的代碼:
表單元素不多的時候,這樣還好,但是如果一個表單有好幾十項甚至更多輸入項的時候,寫這種代碼就太費勁了。
好在javascript中有一個邪惡的eval函數,可以幫我們完成一些類似c#反射的工作,比如下面這樣:
這樣,我們就動态建立了一個複合對象A,明白其中原理後,可以對表單做些改進:
這樣,隻要form元素的name屬性正确設定,需要收集表單對象時,調用一下setFormModel函數,就能快速得到一個json對象(當然這隻是示例,僅處理了一級屬性的情況,如果有多級屬性,大家自己去擴充吧,無非就是字元串上做些文章)