// 登陆验证
$(function () {
var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'K', 'k', 'L', 'l', 'M', 'm', 'N', 'n', 'O', 'o', 'P', 'p', 'Q', 'q', 'R', 'r', 'S', 's', 'T', 't', 'U', 'u', 'V', 'v', 'W', 'w', 'X', 'x', 'Y', 'y', 'Z', 'z'];
// 数组元素个数
var len = chars.length - 1;
// 产生四位随机验证码
var a = chars[(Math.random() * len).toFixed()];
var b = chars[(Math.random() * len).toFixed()];
var c = chars[(Math.random() * len).toFixed()];
var d = chars[(Math.random() * len).toFixed()];
// 随机字体颜色
$('#testing>.red').html(a).css('color', 'rgb(' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ')')
$('#testing>.green').html(b).css('color', 'rgb(' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ')')
$('#testing>.blue').html(c).css('color', 'rgb(' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ')')
$('#testing>.font').html(d).css('color', 'rgb(' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ')')
// 设置样式
$('#testing').css({ 'font-weight': 'bolder;' });
// 更换验证码
$('#testing').click(function () {
randomNum()
// 清空提示信息
$('.checkTesting').html('');
})
// 验证文本框鼠标获得焦点事件
$('#Email').focus(function () { $('#logErr').html(''); })
$('#Password').focus(function () { $('#logPwd').html(''); })
$('input[id=Authenticode]').focus(function () { $('.checkTesting').html(''); })
// 登陆验证
$('input[type=submit').click(function () {
// 获取用户名
var log = $('#Email').val().trim();
// 获取用户密码
var pwd = $('#Password').val().trim();
// 获取输入的验证码
var $txt = $('input[name=Authenticode]').val().trim();
// 获取随机生成的验证码
var A = $('#testing>.red').html();
var B = $('#testing>.green').html();
var C = $('#testing>.blue').html();
var D = $('#testing>.font').html();
// 拼接字符串 随机验证码
var str = A + ' ' + B + ' ' + C + ' ' + D;
// 声明变量
var strs = '';
// 循环文本框验证码 添加空格
for (var i = 0; i < $txt.length; i++) {
strs += $txt[i] + ' ';
}
// 判断用户名和密码
if (log.length === 0 && pwd.length > 0) {
$('#logErr').html('账号不能为空').css('color', 'red');
randomNum()
return false;
} else if (log.length > 0 && pwd.length === 0) {
$('#logPwd').html('密码不能为空').css('color', 'red');
randomNum()
return false;
} else if (log.length === 0 || pwd.length === 0) {
$('#logErr').html('账号不能为空').css('color', 'red');
$('#logPwd').html('密码不能为空').css('color', 'red');
// 重新生成验证码
randomNum()
return false;
} else if ($txt.length === 0 || strs.trim().length === 0) {
$('.checkTesting').html('请输入验证码').css('color', 'red');
// 重新生成验证码
randomNum()
return false;
} else if ($txt.length < 4 || $txt.length > 4) {
$('.checkTesting').html('验证码有误').css('color', 'red');
// 重新生成验证码
randomNum()
return false;
}
// 判断验证码 转小写
if (strs.trim().toLocaleLowerCase() === str.trim().toLocaleLowerCase()) {
// 获取表单数据
var formData = new FormData($('form')[0]);
// ajax 提交
$.ajax({
url: '/Account/Login',
type: 'POST',
data: formData,
cache: false,
contentType: false,
processData: false
}).done(function () {
// 登陆成功
LoadPath('/Home/Index');
}).fail(function () {
// 登录失败
randomNum() // 随机生成验证码
});
} else { // 验证码错误
randomNum() // 调用随机验证码
// 提示信息
$('.checkTesting').html('验证码错误').css('color', 'red');
return false;
}
})
// 随机生成验证码
function randomNum() {
// 产生四位随机验证码
var a = chars[(Math.random() * len).toFixed()];
var b = chars[(Math.random() * len).toFixed()];
var c = chars[(Math.random() * len).toFixed()];
var d = chars[(Math.random() * len).toFixed()];
// 随机字体颜色
$('#testing>.red').html(a).css('color', 'rgb(' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ')')
$('#testing>.green').html(b).css('color', 'rgb(' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ')')
$('#testing>.blue').html(c).css('color', 'rgb(' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ')')
$('#testing>.font').html(d).css('color', 'rgb(' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ',' + parseInt(Math.random() * 256) + ')')
// 设置样式
$('#testing').css({ 'font-weight': 'bolder;' });
// 清空文本框验证码
$('input[name=Authenticode]').val('');
}
})

ASP.Net Jquery 随机验证码 文本框判断的更多相关文章

  1. (三)在js(jquery)中获得文本框焦点和失去焦点的方法

    在js(jquery)中获得文本框焦点和失去焦点的方法   文章介绍两个方法和种是利用javascript onFocus onBlur来判断焦点和失去焦点,加一种是利用jquery $(" ...

  2. Jquery实现 TextArea 文本框根据输入内容自动适应高度

    原文 Jquery实现 TextArea 文本框根据输入内容自动适应高度 在玩微博的时候我们可能会注意到一个细节就是不管是新浪微博还是腾讯微博在转发和评论的时候给你的默认文本框的高度都不会很高,这可能 ...

  3. asp.net调用系统设置字体文本框的方法

    本文实例展示了asp.net调用系统设置字体文本框的方法,是进行web开发中很实用的技巧.具体实现步骤如下: 一.调用系统字体文本框 首先在bin文件夹右击-->添加引用-->.net标签 ...

  4. 通过jquery来实现文本框和下拉框动态添加效果,能根据自己的需求来自定义最多允许添加数量,实用的jquery动态添加文本框特效

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. [JS] 文本框判断输入的内容是否为数字

    可以通过触发文本框的onchange事件来对输入的内容进行判断是否为数字 文本框的属性设置: 把onchange的属性对应的js函数写好即可 参数传输的是当前控件的value值,即text值 < ...

  6. 基于JQuery实现的文本框自动填充功能

    1. 实现的方法 /* * js实现的文本框的自动完成功能 */ function doAutoComplete(textid,dataid,url){ $("#" + texti ...

  7. JQuery下focus()无法自动获取焦点的处理方法 jquery如何使文本框获得焦点

    今天遇见这么一个小小的问题,就是文本框中需要输入内容才可以提交,如果没有输入就提示并使该文本框获得焦点! 这么一个简单的事情如果没有使用 jQuery的话 是不是对象.focus()就可以了, Jav ...

  8. 基于jQuery的计算文本框字数的代码-jquery

    用户边输入计算同时进行,告诉用户还剩余多少可输入的字数,当超过规定的字数后,点击确定,会让输入框闪动 一.功能:  1.用户边输入计算同时进行,告诉用户还剩余多少可输入的字数;  2.当超过规定的字数 ...

  9. jQuery实现限制文本框的输入长度

    jQuery限制文本框输入,包含粘贴. //限制文本框的输入长度 $(function () {  $(document).on("keypress", ".txt-va ...

随机推荐

  1. CentOS7下将Python的版本升级为3.7

    众所周知,在2020年python官方将不再支持2.7版本的python,所以使用3.x版本的python是必要的,但是linux中默认安装的python一般是2.6和2.7版本的,要是使用linux ...

  2. Java 字符集编码

    一.字符编码实例1.NioTest13_In.txt文件内容拷贝到NioTest13_Out.txt文件中 public class NioTest13 { public static void ma ...

  3. Spring Cloud-Eureka 服务注册中心

    Eureka 是 Netflix 开发的,一个基于 REST 服务的,服务注册与发现的组件 它主要包括两个组件:Eureka Server 和 Eureka Client Eureka Client: ...

  4. MLflow系列4:MLflow模型

    英文链接:https://mlflow.org/docs/latest/models.html 本文链接:https://www.cnblogs.com/CheeseZH/p/11946260.htm ...

  5. 华为云ARM64服务器试用

    公司同事弄了个华为云的ARM64服务器,让我帮忙部署我们的服务,所以先试用了一下. 总体感觉还行,使用的CentOS系统,yum也能用,epel源也可以用.但是SCL软件集用不了. uname -a ...

  6. Ubuntu 16.04 catkin_make 常见操作

    参考博客:https://answers.ros.org/question/54178/how-to-build-just-one-package-using-catkin_make/ 1. catk ...

  7. [转帖]Java中重写和重载与多态的关系

    Java中重写和重载与多态的关系 2019-09-05 00:57:41 留下一天今天 阅读数 67  收藏 更多 分类专栏: java进阶之路   版权声明:本文为博主原创文章,遵循CC 4.0 B ...

  8. [转帖]UML类图新手入门级介绍

    UML类图新手入门级介绍 2010-11-12 19:45:00 monkey_d_meng 阅读数 27230  收藏 文章标签: umlinterfaceclass编程扩展更多 分类专栏: 软件工 ...

  9. tomcat启动时报No rules found matching 'Server/Service/Engine/Host/context'

    tomcat是8.0版本. 在eclipse启动时,第二行报这个, 同时项目也没加载(tomcat启动成功了). 网上搜了半天, 试了半天, 没搞定. 最后不经意间发现: <Context do ...

  10. STL源码剖析——序列式容器#4 Stack & Queue

    Stack stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口,元素的新增.删除.最顶端访问都在该出口进行,没有其他位置和方法可以存取stack的元素. ...