layui 获取子页面表单数据
时间: 2023-09-03 08:27:15 浏览: 287
解决LayUI表单获取不到data的问题
5星 · 资源好评率100%
### 回答1:
在 layui 中,可以通过使用 `form.val("formId")` 来获取子页面中表单的数据。其中 `formId` 是子页面中表单元素的 id。使用示例如下:
```
<form class="layui-form" id="formId">
<input type="text" name="username" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input">
<input type="password" name="password" lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input">
</form>
<script>
// 获取表单数据
var formData = form.val("formId");
console.log(formData);
// {username: "test", password: "123456"}
</script>
```
可以通过console.log打印出来查看表单的值
### 回答2:
在 layui 中获取子页面表单数据,需要使用 layui 的表单模块进行操作。首先,在子页面的表单中,我们需要给表单元素设置一个唯一的 id,方便后续通过 id 来获取表单数据。
然后,在父页面中,可以使用 layui 的 form 模块的 on 绑定事件的方式,来获取子页面表单数据。具体步骤如下:
1. 引入 layui 的 form 模块和 layer 模块。
2. 在子页面的表单元素中,给每个需要获取数据的表单元素设置一个 id,例如:
<input type="text" id="name" name="name">
3. 在父页面的 js 中,使用 layui 的 form 模块的 on 绑定事件的方式,来获取子页面表单数据,例如:
layui.form.on('submit(submitBtn)', function(data){
var name = data.field.name;
// 其它表单元素的获取方式类似
});
这里的 'submitBtn' 是一个按钮的 id,通过该按钮来触发提交事件。
4. 在子页面的表单提交按钮上,添加一个 lay-filter 属性,属性值为 'submitBtn',例如:
<button class="layui-btn" lay-filter="submitBtn" lay-submit>提交</button>
通过以上步骤,我们就可以在父页面中通过 form 模块的 on 绑定事件的方式,获取子页面表单数据了。
### 回答3:
在layui中获取子页面表单数据有多种方法:
1. 使用layui的form模块,通过form.on('submit(formDemo)', function(data){})事件获取表单数据。首先,在子页面中引入layui的form模块,然后在表单元素上增加lay-filter属性,设定一个唯一的值,比如lay-filter="formDemo"。接着,在父页面中监听子页面的表单提交事件,代码如下:
子页面:
```html
<form class="layui-form" lay-filter="formDemo">
<!-- 表单内容 -->
</form>
```
父页面:
```javascript
layui.use(['form'], function(){
var form = layui.form;
form.on('submit(formDemo)', function(data){
// 获取子页面表单数据
var formData = data.field;
// 其他操作
return false; // 阻止表单跳转
});
});
```
2. 使用layui的iframe模块,在子页面中通过top.layui.jquery获取父页面的jquery对象,然后通过表单选择器获取表单元素,使用jquery的serializeArray()方法获取表单数据。代码如下:
子页面:
```html
<form id="myForm">
<!-- 表单内容 -->
</form>
<script>
var $ = top.layui.jquery; // 获取父页面的jquery对象
// 表单提交事件
$('#myForm').on('submit', function(e){
e.preventDefault();
// 获取子页面表单数据
var formData = $(this).serializeArray();
// 其他操作
});
</script>
```
需要注意的是,第二种方法需要在子页面中引入jquery库,并且确保父子页面的域名和协议相同,否则会因为跨域问题导致无法获取数据。
阅读全文