Trust
Trust
  • 发布:2016-08-22 16:54
  • 更新:2016-08-22 16:54
  • 阅读:9864

【示例】 Mui v3.3.0使用dialog实现密码的输入及验证

分类:MUI

需求描述

使用dialog弹出密码输入框,用户输入密码并且密码验证通过后方可关闭dialog。

需求分析

首先,dialog中提供密码输入框。
其次,用户输入密码后对密码进行验证。
最后,通过验证则关闭dialog,否则不关闭dialog并提示错误信息。

实现思路

dialog

mui提供了许多dialog,只有mui.prompt()提供了输入框,但它并不是密码框。
mui.confirm()的message参数,可以传html代码段来展示密码框,就选它了。

回调函数

由于当前版本mui,点击dialog中的按钮均会关闭dialog,所以需要对dialog按钮的默认行为进行修改。
注:下个版本会更新此修改,目前需要的话请下载附件中的mui.js文件。

验证密码

对用户输入的密码进行验证后,如果验证失败,则需要做出相应的提示。
和密码框的思路一样,使用一个文本内容默认为空的元素来展示错误信息。

功能实现

密码输入框

使用mui.confirm()弹出密码输入框。

mui.confirm('<input type="password" id="test" />', 'Hello MUI', null, function(e) {},'div');  

注:这里需要声明使用H5模式的dialog,参考文档dialog

阻止关闭dialog

用户输入完成后,点击”确认“按钮,验证密码。

mui.confirm('<input type="password" id="test" />', 'Hello MUI', null, function(event) {  
    var index = event.index;  
    if(index === 1) {  
        var pwd = document.getElementById('test').value;  
        // 验证失败返回false  
        return false;  
    }  
},'div');  

修改按钮的默认行为后,在回调函数中返回false,则不会关闭dialog。

错误信息

在拼接密码输入框的同时,见错误信息提示的元素一起拼接。

mui.confirm('<input type="password" id="test" /><span id="error">&nbsp</span>', 'Hello MUI', null, function(event) {},'div');  

源码

附上源码,直接浏览即可。

10 关注 分享
赵梦欢 freedemon 邓尼玛_ 若末lan 2***@qq.com wfc1870 小云菜 lhyh myEsn2E9 banyingli

要回复文章请先登录注册

1***@163.com

1***@163.com

楼主 你那个代码哪里有return false,没效果
2017-04-18 13:41
atjinna

atjinna

没效果啊
2016-10-27 10:43
sunrist1

sunrist1

回复 Trust :
是在webview里面的
2016-10-11 10:47
sunrist1

sunrist1

回复 Trust :
根据文档中提示的,把prompt里面的输入框type改成了password
输入后的确是显示为一点点了,
但是问题来了...居然可以切换输入法,可以输入中文,甚至是ios输入法里面的表情....
这个该怎么破
2016-10-11 10:46
辰龙old

辰龙old

用了最新版的非缩版也不行
2016-09-19 18:08
Trust

Trust (作者)

回复 SkyKun :
压缩版有问题,直接使用mui.js。
2016-09-01 08:31
SkyKun

SkyKun

return false;好像不能阻止对话框关闭啊
2016-08-31 21:38
Trust

Trust (作者)

嗯,我修改下,需要声明采用DIV模式。
2016-08-25 14:41
nothingblack7

nothingblack7

回复 Trust :
这个只能在浏览器有效果啊,android和ios手机里边的弹出内容是html代码不是输入框
2016-08-25 14:19
Trust

Trust (作者)

回复 nothingblack7 :
是的,因为好多小伙伴希望直接用dialog控件,所以提供一个简单的示例。
2016-08-25 13:58