例如我的一個Ext的form中有設置JSON與name:'company'這兩個textfield 我向這兩個textfIEld中輸入信息之後(比如第一個填bill,第二個填入Microsoft),submit這個form的時候,其實是並不想真的提交給哪個頁面,只是想獲得一個對象變量。
像這樣的格式{name:"bill",company:"microsoft"} 查了半天手冊,並沒有看到Ext的formPanel本身有這樣的方法(也許其他地方有我沒查到) 希望有高手知道如何解決的方便告知一下,謝謝。
恩,原來我也想過為每個textfield設置id,然後用Ext.getCmp(id).getValue()獲取值,但是這個表單裡的textfIEld有很多,如果都這麼寫的話重復代碼太多了,太丑陋啦 ,而且現在我做的這個東西比較亂,頁面多都是動態加載沒有iframe什麼的,能不設置JSON就不設置id,避免和別人寫的部分沖突。
而且這個formPanel是橫向排列的,為了colum排列這個格式,這個formPanel裡套了好幾層的items,靠從子項的index取值太麻煩,而且我也還不會。出現這個問題是某屬性通過串行化Json數據異常。可能你不懂了,意思是這樣的,struts2的action裡面的數據轉換成json數據時是將提供了getter的屬性都統統串行化輸出JSON到客戶端。有的時候,很多屬性並不一定要串行化成JSon數據。比如:使用的spring注入屬性recordService,也就是提供了getter和setter!
所以解決這個異常方法就是在不需要串行化的屬性的設置JSON前加上annotation, 就是@JSON(serialize=false)
- function showJSON() {
- var user =
- {
- "username":"andy",
- "age":20,
- "info": { "tel": "123456", "cellphone": "98765"},
- "address":
- [
- {"city":"beijing","postcode":"222333"},
- {"city":"newyork","postcode":"555666"}
- ]
- }
- alert(user.username);
- alert(user.age);
- alert(user.info.cellphone);
- alert(user.address[0].city);
- alert(user.address[0].postcode);
- user.username = "Tom";
- alert(user.username);
- }