/** * idcode 1.0 - validate user. * Version 1.0 * @requires jQuery v1.2 * author ehong[idehong@gmail.com] **/ /** * @example: $.idcode.setCode(); * @desc: Make a validate code append to the element that id is idcode. * * @example $.idcode.validateCode(); * @desc return true if user input value equal idcode. **/ (function ($) { var settings = { e: 'idcode', codeType: { name: 'follow', len: 5 }, //len鏄慨鏀归獙璇佺爜闀垮害鐨 codeTip: '鎹釜楠岃瘉鐮?', inputID: 'Txtidcode'//楠岃瘉鍏冪礌鐨処D }; var _set = { storeLable: 'codeval', store: '#ehong-code-input', codeval: '#ehong-code' } $.idcode = { getCode: function (option) { _commSetting(option); return _storeData(_set.storeLable, null); }, setCode: function (option) { _commSetting(option); _setCodeStyle("#" + settings.e, settings.codeType.name, settings.codeType.len); }, validateCode: function (option) { _commSetting(option); var inputV; if (settings.inputID) { inputV = $('#' + settings.inputID).val(); } else { inputV = $(_set.store).val(); } if (inputV.toUpperCase() == _storeData(_set.storeLable, null).toUpperCase()) {//淇敼鐨勪笉鍖哄垎澶у皬鍐 return true; } else { _setCodeStyle("#" + settings.e, settings.codeType.name, settings.codeType.len); return false; } } }; function _commSetting(option) { $.extend(settings, option); } function _storeData(dataLabel, data) { var store = $(_set.codeval).get(0); if (data) { $.data(store, dataLabel, data); } else { return $.data(store, dataLabel); } } function _setCodeStyle(eid, codeType, codeLength) { var codeObj = _createCode(settings.codeType.name, settings.codeType.len); //$("#code").val(codeObj); window.sessionStorage.setItem("codeStr", codeObj); var randNum = Math.floor(Math.random() * 6); var htmlCode = '' if (!settings.inputID) { htmlCode = ''; } htmlCode += '
' + _setStyle(codeObj) + '
' + ''+ settings.codeTip +''; htmlCode += '" href="#" onblur="return false" onfocus="return false" oncontextmenu="return false" onclick="$.idcode.setCode()">' + _setStyle(codeObj) + ''; $(eid).html(htmlCode); _storeData(_set.storeLable, codeObj); } function _setStyle(codeObj) { var fnCodeObj = new Array(); var col = new Array('#BF0C43', '#E69A2A', '#707F02', '#18975F', '#BC3087', '#73C841', '#780320', '#90719B', '#1F72D8', '#D6A03C', '#6B486E', '#243F5F', '#16BDB5'); var charIndex; for (var i = 0; i < codeObj.length; i++) { charIndex = Math.floor(Math.random() * col.length); fnCodeObj.push('' + codeObj.charAt(i) + ''); } return fnCodeObj.join(''); } function _createCode(codeType, codeLength) { var codeObj; if (codeType == 'follow') { codeObj = _createCodeFollow(codeLength); } else if (codeType == 'calc') { codeObj = _createCodeCalc(codeLength); } else { codeObj = ""; } return codeObj; } function _createCodeCalc(codeLength) { var code1, code2, codeResult; var selectChar = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); var charIndex; for (var i = 0; i < codeLength; i++) { charIndex = Math.floor(Math.random() * selectChar.length); code1 += selectChar[charIndex]; charIndex = Math.floor(Math.random() * selectChar.length); code2 += selectChar[charIndex]; } return [parseInt(code1), parseInt(code2), parseInt(code1) + parseInt(code2)]; } function _createCodeFollow(codeLength) { var code = ""; var selectChar = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); for (var i = 0; i < codeLength; i++) { var charIndex = Math.floor(Math.random() * selectChar.length); if (charIndex % 2 == 0) { code += selectChar[charIndex].toLowerCase(); } else { code += selectChar[charIndex]; } } return code; } })(jQuery);