例如我的一个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,避免和别人写的部分冲突。#t#
而且这个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);
- }