将js文件和html分离后,如何初始表单数据呢

提问 未结 8 208
微笑刺客D
悬赏:20飞吻
问题描述:
1、目的:将数据传入到js文件中完成表单初始化。
2、场景:Asp.Net Core MVC、数据从控制器中的Action返回到强视图界面,通过序列化成json对象传递给前端界面上的插件初始化。

3、问题:我将Html和js文件相互隔离,这样一来初始化数据无法传入到js文件中间。

4、目前是通过在window.onload完成表单初始化的,是否还有更好的方式呢?
回帖
  • 初始化表单的值你可以用form.val方法,文档里都有写的
    //formTest 即 class="layui-form" 所在元素对应的 lay-filter="" 对应的值
    form.val("formTest", {
    "username": "贤心" // "name": "value"
    ,"sex": "女"
    ,"auth": 3
    ,"check[write]": true
    ,"open": false
    ,"desc": "我爱layui"
    })
    0 回复
  • @HiTerry 目前是用的form.val的形式初始化的,但是如图所示
    我的数据是在当前视图上,js的代码不是直接写在当前视图,而是用的js文件,导致视图上的数据不能传入到js文件中,被迫用window.onload方法。
    0 回复
  • 你的form.val的第二个参数得是json对象可以,字串哪行
    0 回复
  • @HiTerry 这个是个json对象,现在是没有问题的,可以初始化成功,只是我的初始化是在js文件外部,这种方式不太妥当,想了解一下是不是有直接在js文件内初始化的方式。
    0 回复
  • 你是不是不太熟悉layui,你可以把js写成layui模块的形式,引入的时候用layui.use直接引入,js在外部给表单赋值没有问题啊
    0 回复
  • @HiTerry 我明白你的意思了,可以在js外部再使用layu.use()完成表单初始化,如下图所示这种方式

    这样一来,当前界面写少量初始化代码即可完成对js文件内部的初始化,是不是这个意思呢?
    0 回复
  • 不是这个意思我是说你的js完全可以以layui模块的形式写到一个js文件中,在js文件中异步取值后用form.val给你的表单赋值,这么说你明白吗
    0 回复
  • @HiTerry 哦哦明白了,你用的是异步取值,先得到界面再通过ajax去获取初始数据,这两种方式不一样,我这里是直接数据和界面一并展示出来了,没得异步这个过程了
    0 回复