当表单的name命名为"o.a"时,ajax获取的数据如何快速回填?

比如:

<input name="o.name" id="name" value=""/>

通过ajax获取到一个data={name:"123"},要将data回填到表单中,如何比较快速?

如果name="name",用$(form).form("load",data)即可。

当带有对象名时,$(form).form("load",data)就不生效了,需要$("#name").val(data.name)才行。

评论区

JFinal

2022-04-21 22:39

ajax 获取到的数据是 data={name:"123"} ,那后续全是前端的事了

后端看能不能带上对象结构,传回来: data={o: {name:"123"}}

杜福忠

2022-04-22 09:56

开发模式的不同,我会选择使用不同的交互方式:
像 name="o.name" 这样一般都是搭配JF模板渲染 value="#(o.name)" 这样子使用回填的;
如果用Ajax做数据回填,那么提交的时候就没有必要使用 name="o.name"了。
虽然现在流行用vue了,但是jQuery里面也有一个数据双向绑定的插件way.js ,可以尝试一下,就不用辛苦的做数据回填和提交打包的动作了;
https://github.com/gwendall/way.js/blob/master/dist/way.js
例子:
https://www.jq22.com/demo/way.js-master/

北流家园网

2022-04-23 09:55

@杜福忠 @JFinal 场景是这样的。分左右两部分,左右是列表,右边是表单,对应左右的某一条记录,表单对应数据库里3个表的数据,所以要使用前缀a,b,c区别。当左右点击一条记录时,显示表单数据,可以修改数据后保存。如果不使用前缀,就将所有数据都传到后台,再一个个拆分到每个表去保存。如果使用前缀了,就可以使用JF的特性,直接转化为对应的对象,会方便很多。

杜福忠

2022-04-23 20:29

@北流家园网 试试前端数据双向绑定,用JSON提交参数,后端也用JSON接收,爽的一匹