java窗口关闭后自动初始化_页面弹出框,关闭后再打开,控件值的初始化

从做权限系统开始,我就跟弹出页面成了好朋友。。。开始我向无头苍蝇一样的寻找着各种办法,上篇博客也写到了页面弹出框的实现,虽然有多中实现方法,也满足了基本的要求,然而在后面不断应用中会发现很多不完善的地方,过程中看到了自己很多的不足,首先是对js实现弹出框的不熟悉,其次是各种需求想不全面。不过还是看到了进步,这次问题出现后,不像以前那样毫无头绪,而是由几种基本的想法,所以就一一去验证,但是最终的方法还没确定。问题是这样的:

我的页面弹出框是在页面加载时就存的的,只不过是隐藏状态,当打开弹出框时才显示,但是即使关闭了,里面的数据也不会消失,只是隐藏了,所以在第二次打开弹出框时,上次填写的数据还会存在,第二次打开弹出框效果如果:

44cd3d4ce9cac42f995deb51af9e7f9f.png

显然这样的用户体验并不好,所以我需要做的就是在关闭弹出窗口时将数据置空,或者是回复到初始化状态;解决问题的办法有如下三种:喎�"/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgINK7oaLLotDC1fu49tKzw+ajujwvcD4KPHA+ICAgICAgICAgICDTydPa1fu49rWvs/a/8ra8ysfS1GRpdrXE0M7KvbTm1NrT2tKzw+bA77XEo6zL+dLU1rvSqsui0MLV+7j20rPD5qOsZGl2tcTK/b7d0rK+zb/J0tSz9cq8u6+jrLe9t6ijujwvcD4KPHA+ICAgPHByZSBjbGFzcz0="brush:java;">function dialogOpen(p_dialogid,p_width,p_height,url) {

$(function () {

$('#' + p_dialogid).dialog({

width: p_width,

height:p_height,

close: function () { //触动关闭方法时,刷新页面,url为html传递过来的当前页面

window.location = url;

}

});

});

}

由于要刷新整个页面,如果数据很多时,有些浪费资源,所以这个方法并不是很好。

二、设置循环为p中的每个数据进行清除

思路是:只要将可以填写数据的控件中的数据进行清空,则下次打开时,则不会再存在数据,代码如下:

function dialogOpen(p_dialogid,p_width,p_height) {

$(function () {

$('#' + p_dialogid).dialog({

width: p_width,

height:p_height,

close: function () {

var p_id = document.getElementById(p_dialogid); //获取当前p

var inputnum=p_id.getElementsByTagName("input"); //获取input的数量(input中输入数据)

var intnum;

for (intnum = 0; intnum < inputnum.length; intnum++) //循环将每个input的数据写为空

{

p_id.getElementsByTagName("input")[intnum].value = "";

};

var txtnum = p_id.getElementsByTagName("textarea"); //获取textarea的数量

for (intnum = 0; intnum < txtnum.length; intnum++) {

p_id.getElementsByTagName("textarea")[intnum].value = ''; //将每个textarea的内容写为空

p_id.getElementsByTagName("textarea")[intnum].innerHTML = "";

};

}

});

});

} 虽然这样可以把数据置空,但是如果在页码上写有验证,那么验证则不会取消,所以这是治标不治本的办法。

方法三:局部更新p(只更新当前操作的p)

想到ajax的异步更新,或许可以用到,但是这里不需要与服务器的交互,所以直接在加载弹出框时,将innerHTML的值保存,在关闭时,将初始时候的innerHTML赋值给这个p即可:

function dialogOpen()

{

$(function () {

var phtml = $("#dialog").html();

$("#dialog").dialog({

close:function(){

$("#dialog").html(phtml);

}

});

});

}

目前这个方法是最可行的。希望还可以找到更好的方法来解决。

方案尚未确定,我仍需努力,渐渐的发现,对这块的内容不向之前那么没头没脑了,出错不可怕,可怕的是没思路呀,不过我觉得我现在至少还是有思路的。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值