layer弹出框的正文使用html的内容传值问题

layer弹出框的content使用html内容时

比如:
下面是html内容

 <div id="contentDiv">
           <div style="width:350px;margin:10px auto;text-align:center;">
        <form >
            <div id="aa1">
                名称: <input type="text" id="userName"   />
            </div>
              <div id="aa2" style="margin-top:20px;">
               学号: <input type="text" id="number" />
            </div>
              <div  id="aa3" style="margin-top:20px;">
                班级: <input type="text" id="stuclass" />
            </div>
        </form>
                 </div>
    </div>

在弹出框打开前先给文本框赋值,为了弹出框里的文本框也有值。代码如下:

//给修改绑定事件
$(".myUpdate").click(function () {
var nowRows = $(this);//当前选中的行
var uid = nowRows.parent().siblings().eq(0).html();//id
$("#userName").val( nowRows.parent().siblings().eq(1).html());//用户名
$("#number").val( nowRows.parent().siblings().eq(2).html());//学号
$("#stuclass").val(nowRows.parent().siblings().eq(3).html());//班级

然后再将弹出框里的正文改为div的id为contentDiv盒子里的所有html,相当于复制一个。

这样再打开弹窗时会出现div的id为contentDiv盒子里的所有内容,但是文本框取没有值,前一个div的id为contentDiv盒子里却有值了,这是因为实际上存在两个id为contentDiv的盒子,而选择器赋值时默认找了第一个id为contentDiv的盒子,可以将弹出框里的那个盒子理解为未来生成的。


解决方法

直接将弹出框的正文改为改为div的id为contentDiv盒子本身,这样就一直都只有一个div了,然后设置一下基本层类型即可。

这样的话,div的id为contentDiv盒子会直接被放入弹出框里显示,而弹出框关闭后又把div放回至原理的body中。而且还能拿到文本框的值。

弹出框打开时,如下图:

弹出框关闭时,div回到body中:如下图:

posted @ 2022-01-11 18:28  青仙  阅读(907)  评论(1编辑  收藏  举报