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

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

$.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();
              } },
            ]
        });