weui的自定义Dialog,只能获取到第一次获取的dome元素的值

来源:互联网 发布:fragment重新加载数据 编辑:程序博客网 时间:2024/06/07 12:08

今天遇到的很奇怪的问题,纠结了好长时间,看下面实例代码来体会这个奇怪的问题

$.modal({          title: "测试",          text: "文本框1<input type='text' id='test01' value=''/><br>  文本框2<input type='text' id='test02' value=''/>",          buttons: [            { text: "获取两个文本框的value值", onClick: function(){                  alert($("#test01").val());                  alert($("#test02").val());              } },            ]        });

问题:

点击按钮时,获取文本框1的值是正常的,文本框2是undefined。

将alert($("#test01").val());alert($("#test02").val());交换位置,先获取文本框2的值再获取文本框1的值,再来看看

发现只能获取文本框2的值,文本框1是undefined


原因(本人猜测,如果哪位大神知道原因还望告知):

点击获取按钮时会触发关闭弹框,弹框关闭太快,获取到第一个文本框的值,再去获取第二个文本框的值得时候弹框已经关闭。


解决方案:将自动关闭弹窗设置为flase:autoClose : false,,在需要关闭弹窗的时候,加入手动关闭弹窗:$.closeModal();

代码如下:

$.modal({        autoClose : false,          title: "测试",          text: "文本框1<input type='text' id='test01' value=''/><br>  文本框2<input type='text' id='test02' value=''/>",          buttons: [            { text: "获取test01和test02的value值", onClick: function(){ //使用$.alert()会出现弹框还未弹出,窗口就关闭的情况,有知道的//大神告知一下                 alert($("#test01").val());                  alert($("#test02").val());                  $.closeModal();              } },            ]        });