//输入验证码 // options = { // text: String, // title: String, // inputPhone: String 或 true // placeholder: String 或者 {phone: String, verifycode: String} // okText: String, // cancelText: String, // btnText: String, // delay: Number, // onOK: Function(text), // onCancel: Function, // onSend: Function, // verifyImg: String //图片验证码url // } function promptVC(options) { var countdown = options.delay || 60; var settime = function (obj) { if (countdown == 0) { $(obj).removeAttr("disabled"); $(obj).removeClass('weui-btn_disabled') $(obj).text("获取"); countdown = options.delay || 60; return; } else { console.log("剩余(" + countdown + "秒)"); $(obj).attr("disabled", "disabled"); $(obj).addClass('weui-btn_disabled') $(obj).text("(" + countdown + "秒)"); countdown--; setTimeout(function () { settime(obj) }, 1000) } } if (options.placeholder && options.placeholder instanceof String) { options.placeholder = { verifycode: options.placeholder } } var content = '

' + options.text + '

' if (options.inputPhone === true) { content += '
' } else if (options.inputPhone && typeof options.inputPhone == "string") { content += '
' } content += '
' + '
' if (options.verifyImg) { content += '
' + '
' } var checkInput = function (input, message, regexp) { if (input.val() === "" || input.val() === null) { input.focus()[0].select(); weui.topTips(message || '请填写正确的字段'); return false; } if (regexp && regexp instanceof RegExp && !regexp.test(input.val())) { input.focus()[0].select(); weui.topTips(message || '请填写正确的字段'); return false; } return true; } var dlgOpts = { title: options.title, content: content, buttons: [{ label: options.cancelText || '取消', type: 'default', onClick: function () { if (options.onCancel && (options.onCancel.call(dlg) == false)) return false; countdown = 0; } }, { label: options.okText || '确定', type: 'primary', onClick: function () { var val = {}; var input; //TODO: 检查手机号 //134,135,136,137,138,139,147,150,151,152,157,158,159,178,182,183,184,187,188 var regex = /^(13[4-9]|147|15[0-27-9]|178|198|18[23478])\d{8}$/; /*/^1[3-8]\d{9}$/*/ if (options.inputPhone == true) { if (!checkInput(input = $(dlg).find("#weui-prompt-phone"), '请输入有效的手机号', regex)) return false; else val.phone = input.val(); } else if (typeof options.inputPhone == "string" && regex.test(options.inputPhone)) { val.phone = options.inputPhone; } //TODO: 检查验证码 if (!checkInput(input = $(dlg).find("#weui-prompt-verifycode"), '请输入有效的短信验证码', /^\d{6}$/)) { return false; } else val.verifyCode = input.val(); //TODO: 检查图片验证码 if (options.verifyImg) { if (!checkInput(input = $(dlg).find("#weui-prompt-verifyimg"), '请输入有效的图片验证码', /^[A-z0-9]{4}$/)) return false; else val.verifyImg = input.val(); } if (options.onOK && (options.onOK.call(dlg, val) == false)) return false; countdown = 0; } }] }; if (options.cancelText == 'disabled') { dlgOpts.buttons.shift(); } if (options.isAndroid != undefined) dlgOpts.isAndroid = options.isAndroid; var dlg = weui.dialog(dlgOpts); var btn = $(dlg).find('#weui-prompt-button'); btn.click(function () { var phone, input; //TODO: 检查手机号 var regex = /^(13[4-9]|147|15[0-27-9]|178|198|18[23478])\d{8}$/; /*/^1[3-8]\d{9}$/*/ if (options.inputPhone == true) { if (!checkInput(input = $(dlg).find("#weui-prompt-phone"), '请输入有效的手机号', regex)) { return false; } else phone = input.val() } else if (typeof options.inputPhone == "string" && regex.test(options.inputPhone)) { phone = options.inputPhone; } if (options.onSend && (options.onSend.call(dlg, phone) != false)) settime(this); }); }