信大家都用過支付寶,支付或者轉賬交易的時候,都會要求大家輸入6位數密碼。
今天項目正好有這個需求,小編花了點時間完成,并將如何實現跟大家講述一番。
非常不錯,具有參考借鑒價值,需要的朋友可以參考下。
ps:該版本主要用在移動設備中,如果PC有需要,自行修改css,否則樣式兼容錯亂,另外就是用的是jQ獲取dom,實際使用可自行修改源碼。
先看實例完整界面圖:
實例界面圖
我們先簡單分析功能點。
一、點擊數字錄入密碼框。
二、點擊刪除鍵,從右邊開始逐一刪減。
非常簡單的功能。
先獲取用戶點擊的數字按鈕,獲取每個按鈕數字, 在密碼框顯示數字(或者 *),由于密碼框只有6位,那么再加個限制條件,最后給刪除按鈕加刪除功能。
方法一,通過定義全局下標,給對應密碼框賦值:
var index=0;
// 點擊數字
$('.num').on('click', function () {
// 大于6位就不再執行
if (index < 6) {
var num=$(this).text();
$('.inputBox').eq(index).val(num); // "*"
input ++;
}
});
// 刪除
$('.del').on('click', function () {
// 刪完就不再執行
if (index !=0) {
$('.inputBox').eq(index - 1).val('');
index --;
}
});
這么簡單?那么還有沒有更多方式實現呢?
方法二,我們還能用for來做:
// 點擊數字
$('.num').on('click', function () {
var n=0;
$('.inputBox').each(function () {
var $self=$(this);
if ($self.val()=='' && n==0) {
n=1;
$self.val(number);
}
});
});
// 刪除
$('.del').on('click', function () {
var n=0;
for (var i=0, len=$('.inputBox').length - 1; len >=i; len --) {
if ($('.inputBox').eq(len).val() !='' && n==0) {
n=1;
$('.inputBox').eq(len).val('');
}
}
});
明顯 for 的效率不高,挺差勁的,但而已不是說不能用,畢竟點擊一次只循環6下,我們的目的也只是換種實現方式,做同樣的功能。
方法三,我們也可以把密碼儲存起來,再對密碼做顯示,畢竟密碼是要最后整串提交ajax的:
// 點擊數字
var $inputPwd=$('input[type="password"]');
$('.num').on('click', function () {
var num=$(this).text();
var pwd=$inputPwd.val();
// 超過6位不允許再錄入
if (pwd.length) {
return;
} else {
pwd +=num; // 追加輸入的數字
// $('.inputBox').eq(pwd.length - 1).text('*'); // 密碼不可見
$('.inputBox').eq(pwd.length - 1).text(num); // 密碼可見
$inputPwd.val(pwd); // 填入隱藏域
}
// 輸入夠6位數后立即執行需要做的事情,比如ajax提交
if (pwd.length===6) {
// 你的ajax代碼
console.log('你輸入的密碼是:'+ pwd);
}
});
// 刪除功能
$('.del').on('click', function () {
var pwd=$inputPwd.val();
// 密碼為空的時候不在執行
if (pwd !=='') {
// 從最右邊開始截取 1 位字符
pwd=pwd.slice(0, -1);
// 賦值給密碼框同步密碼
$inputPwd.val(pwd);
// 密碼明文顯示從右開始清空文本
$('.inputBox').eq(pwd.length).text('');
}
});
這里面有一個點,刪除密碼的時候用的截取方式可以有很多種。
例如:
substring() 方法用于提取字符串中介于兩個指定下標之間的字符。
slice() 方法可從已有的數組中返回選定的元素。
substr() 方法可在字符串中抽取從 start 下標開始的指定數目的字符。
可以做個例子測試
var a=b=c='123456';
a=a.substring(0, a.length-1);
b=b.slice(0, -1);
c=c.substr(0, c.length);
console.log(a)
console.log(b)
console.log(c)
從代碼上來看,第三種方法更好,比較直觀,不需要下標,也不用循環。
如果想要完整DEMO實例,可以到小編的 github 上下載:
https://github.com/orzhtml/MobilePayPwd/
本文內容均屬個人原創作品,轉載此文章須附上出處及原文鏈接。
加關注,定時推送,互動精彩多,若你有更好的見解,歡迎留言探討!
者:西嵐
轉發鏈接:https://juejin.im/post/5dadd0236fb9a04de04d968e
覽網頁時,各類廣告彈窗、垃圾信息鋪天蓋地跳出來,讓人心生厭惡。這些彈窗到底來自哪里?近日,由崇川區檢察院提起公訴的被告人張某因犯非法控制計算機信息系統罪,被法院一審判處有期徒刑三年六個月,并處罰金人民幣三萬元。
張某現年31歲,老家在河北保定。雖然是機電畢業生,但是張某卻對計算機專業更感興趣。2017年張某自費報名到培訓機構學習網站開發等技術,并在家刻苦鉆研信息技術。2019年,張某正式成為一名信息技術自由職業者,并從一個專門提供軟件開發、網站開發、App開發等任務的平臺上自己接任務,賺取報酬。
2021年夏天,張某在某平臺結識一個QQ昵稱叫“陳大”的人,“陳大”找他做網站相關的項目。由于張某業務能力強,“陳大”開始不斷找張某做項目,并按月支付張某勞動報酬,二人就此開始了長期合作。
起初,張某接的都是合法單子,但漸漸的, “陳大”交給張某的任務開始“不對勁”。2021年11月以來,張某按照“陳大”的要求,利用技術手段非法入侵南通多家單位網站,非法獲取網站服務器后臺瀏覽、增加、刪除、修改等權限,使用控制工具,通過修改目標網站服務器HTML文檔的參數、標題、關鍵詞、描述,將添加了賭博網站推廣引流站群并設置自動跳轉功能的靜態網頁,上傳加載至目標網站服務器,以提高賭博網站推廣引流站群被搜索引擎命中幾率。上網的人只要不小心點擊這些“飄來飄去”的網頁,就會直接進入賭博網站。
截至2022年2月,張某使用非法手段控制了1000余臺計算機信息系統,其本人非法獲利23萬余元。經被害單位報案,張某在河北老家被公安機關抓獲。現場,偵查人員從張某使用的電腦里提取到大量涉案電子數據。
2024年3月19日 ,張某因涉嫌非法控制計算機信息系統罪,被崇川區檢察院起訴。張某如實供述犯罪事實并認罪認罰,獲如上判決。
揚子晚報網/紫牛新聞記者 劉瀏
校對 王菲
*請認真填寫需求信息,我們會在24小時內與您取得聯系。