layui弹窗间的传值(layui弹出层传值)(窗⼝传值)
主要有两部分
1、从主窗⼝传值到弹出层
2、从弹出层传值到主窗⼝
3、通过session互传
4、通过调⽤⽗窗⼝的函数从⽽获取到⽗窗⼝的值(相反也是可以的)
1、从主窗⼝传值到弹出层
⾸先时js
changefileone函数时按钮绑定事件,按钮点击后调⽤这个函数然后弹出弹出层,加载changefile.html界⾯
然后success提前加载changefile的form数据(从主窗⼝传值到弹出层)
//bootstraptable的修改,点击按钮的时候⾃动选中该⾏,因此可以获取到整⾏的值
function changefileone(){
var rowselect =$("#menuTable").bootstrapTable('getSelections');//取得当前选定的selectItem对象,其中包括整⾏值
console.log(rowselect);
layer.open({
title:"修改⽂件属性",
type:2,
content:"changefile.html",
area:['50%','70%'],
skin:"layui-layer-molv",
btn:['确定','关闭'],
success:function(layero, index){//成功获得加载changefile.html时,预先加载,将值从⽗窗⼝传到⼦窗⼝
console.log(obj.data.editAble);
let body = ChildFrame('body', index);
//console.log(rowselect[0].filename);
body.find(".filename").val(rowselect[0].filename);//通过class名进⾏获取数据
body.find(".filepath").val(rowselect[0].path);//意思是将rowselect[0].path这个值传递到⼦窗⼝的class="filepath"这个的⽂本框中,(预先加载)//body.find(".menuid").val(rowselect[0].previousid);
der();
},
yes:function(index, layero){//按了弹出层的确定按钮时,这是将在⽗窗⼝中获取⼦窗⼝form标签⾥的所有值,并根据name名和值形成键值对json 对象
/
/console.log(layero);
layer.alert('来到这⾥了'+index);
let body = ChildFrame("body", index);
let data ={};
body.find("#changefileform").serializeArray().forEach(function(item){//获取弹出层写下的数据,input,下拉框啊,之类的表单元素(即changefilef orm下的所有数据)
data[item.name]= item.value;//根据表单元素的name属性来获取数据
});
data["fileid"]= rowselect[0].fileid;
//if (data["previousid"] == "" || data["previousid"] == null)
// data["previousid"] = rowselect[0].previousid;
console.log(data);
$.post('/api/dofile', data,function(result){
if(result =="success"){
layer.alert("修改⽂件属性成功");
}
setTimeout(function(){
layer.close(index);
load();
},600);
});
layer.close(index);
resetSearch();
}
});
}
点击按钮后,提前加载
然后是html界⾯,script⾥⾯是⽤来下拉框加载数据库数据的,可以删掉
<!DOCTYPE html>
<html xmlns="/1999/xhtml">
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title></title>
<script src="/Scripts/jquery/jquery.min.js"type="text/javascript"></script>
<script src="/Scripts/layer/layer.js"type="text/javascript"></script>
<script src="/Scripts/layui/layui.all.js"type="text/javascript"></script>
<link rel="stylesheet"href="/Scripts/layui/css/layui.css"/>
<script type="text/javascript">
$(document).ready(function(){
var selectvalue ="";//定义这个⽤来存放选择的value
layui.use('form',function(){
var form = layui.form;
$.get("/api/choosemenu",function(data){
for(var j ws){
//ws[j].Name);
$("#menuname").append("<option value='"+ ws[j].menuid +"'>"+ ws[j].Name +"</option>");
}
<('select',function(data){
//alert(data.value);
//console.log(data.value);
selectvalue = data.value;
console.log(selectvalue);
});
jquery弹出div窗口})
})
})
</script>
</head>
<body>
<form class="layui-form"id="changefileform">
<!-- 提⽰:如果你不想⽤form,你可以换成div等任何⼀个普通元素 -->
<div class="layui-form-item">
<label class="layui-form-label layui-bg-red layui-center">⽂件名</label>
<div class="layui-input-block">
<input type="text"name="filename"placeholder="请输⼊"autocomplete="off"class="layui-input filename">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label layui-bg-red layui-center">⽂件路径</label>
<div class="layui-input-block">
<input type="text"name="filepath"placeholder="请输⼊"autocomplete="off"class="layui-input filepath">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label layui-bg-green layui-center">⽗⽬录</label>
<div class="layui-input-block">
<select name="previousid"id="menuname"lay-search>
<option value="" class="menuid">请选择⽗⽬录</option>
</select>
</div>
</div>
</form>
</body>
</html>
2、然后再这个弹出层填写数据,按了确定后就开始加载这个js啦,这个获取数据是通过name属性来获取的,上⾯ 那个的话是通过class名称来获取的
然后controller获取从js传来的数据的话,看我另外的博客
下拉框动态获取数据库数据
下拉框可以搜索
看我其他博客
3、通过session传值
设置session
sessionStorage.setItem('roleid','hello');
取session
var Item('roleid');
删除session中保存指定的值
删除全部
sessionStorage.clear();
4、通过调⽤⽗窗⼝的函数从⽽获取到⽗窗⼝的值, 这个适合获取少量值, ⽗窗⼝的js:
(1)(这个是获取bootstraptable的选定值)menuTable是表格的id,这样返回的值是jSON值来的
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论