JS实现的一个验证码,可以在前端验证后在提交action
js实现的一个验证码功能,可以在前端判断验证码输入是否正确
输入的邮箱格式是否正确
验证成功后才提交action到后台
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
<style type="text/css">
.code
{
<!--可以放一张背景图片更好看-->
background-image:url(code.jpg);
font-family:Arial;
font-style:italic;
color:Red;
border:;
padding:2px 3px;
letter-spacing:3px;
font-weight:bolder;
}
.unchanged
{
border:;
}
</style>
<script language="javascript" type="text/javascript"> var code ; //在全局 定义验证码
function createCode()
{
code = "";
var codeLength = ;//验证码的长度
var checkCode = document.getElementById("checkCode");
var selectChar = new Array(,,,,,,,,,,'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=;i<codeLength;i++)
{ var charIndex = Math.floor(Math.random()*);
code +=selectChar[charIndex]; }
// alert(code);
if(checkCode)
{
checkCode.className="code";
checkCode.value = code;
} } function validate ()
{
var inputCode = document.getElementById("input1").value;
if(inputCode.length <=)
{
document.getElementById("yzm").innerText="请输入验证码!";
return false; }
else if(inputCode != code )
{
document.getElementById("yzm").innerText="验证码输入错误!";
//alert("验证码输入错误!");
createCode();//刷新验证码
return false;
}
else
{
var inputCode = document.getElementById("email").value;
if(inputCode.length <=)
{
document.getElementById("yzm").innerText="请输入您的邮箱,方便我们联系您!";
return false;
}else{ //提交action
var f = document.forms[];
f.action="";
f.submit();
}
} }
<!-- 可以控制验证是否是邮箱格式
function emailCheck() {
var objName = document.getElementById("email");
var pattern = /^([a-zA-Z0-]+[_|\_|\.]?)*[a-zA-Z0-]+@([a-zA-Z0-]+[_|\_|\.]?)*[a-zA-Z0-]+\.[a-zA-Z]{,}$/;
if (!pattern.test(objName.value)) {
document.getElementById("yzm").innerText="请输入正确的邮箱地址!";
objName.focus();
document.getElementById("email").innerText="";
return false;
}
document.getElementById("yzm").innerText="";
return true;
}
-->
</script>
</head>
<body onload="createCode()">
<form action="#">
<input type="text" id="input1" placeholder="此项必填哦"/>
<input type="text" onclick="createCode()" readonly="readonly" id="checkCode" class="unchanged" style="width: 80px" /><br />
<input id="Button1" onclick="validate();" type="button" value="确定" />
<label id="yzm" style="color:red;margin-left:15em"></label>
</form>
</body>
</html>
JS实现的一个验证码,可以在前端验证后在提交action的更多相关文章
- 使用 js 和 Beacon API 实现一个简易版的前端埋点监控 npm 包
使用 js 和 Beacon API 实现一个简易版的前端埋点监控 npm 包 前端监控,埋点,数据收集,性能监控 Beacon API https://caniuse.com/beacon 优点,请 ...
- 用Vue.js开发一个电影App的前端界面
我们要构建一个什么样的App? 我们大多数人使用在线流媒体服务(如Netflix)观看我们最喜欢的电影或者节目.这篇文章将重点介绍如何通过使用vue.js 2 建立一个类似风格的电影流媒体WEB交互界 ...
- 本博文将一步步带领你实现抽屉官网的各种功能:包括登陆、注册、发送邮箱验证码、登陆验证码、页面登陆验证、发布文章、上传图片、form验证、点赞、评论、文章分页处理以及基于tronado的后端和ajax的前端数据处理。
本博文将一步步带领你实现抽屉官网的各种功能:包括登陆.注册.发送邮箱验证码.登陆验证码.页面登陆验证.发布文章.上传图片.form验证.点赞.评论.文章分页处理以及基于tronado的后端和ajax的 ...
- node.js 模拟自动发送邮件验证码
node.js 模拟自动发送邮件验证码 引言 正文 1. QQ邮箱设置 2. 安装nodemailer 3.配置信息 4.综合 5.讲解 结束语 引言 先点赞,再看博客,顺手可以点个关注. 微信公众号 ...
- 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目
自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...
- 关于引入多个jquery冲突的问题(附一个很好用的validate前端验证框架及使用方法)
废话不多说,进入正题: 如果一个jsp中想要使用两个不同版本的jquery怎么办呢?客官往下看: <script src="${ctxStatic}/jquery/jquery-1.8 ...
- Node.js 撸第一个Web应用
使用Node.js 创建Web 应用与使用PHP/Java 语言创建Web应用略有不同. 使用PHP/Java 来编写后台代码时,需要Apache 或者 Nginx 的HTTP 服务器,而接受请求和提 ...
- js实现滑动拼图验证码
js实现滑动拼图验证码,我这个样式是仿那些大网站做了, 学习用的,只用到前端. 小的个人网站感觉还可以用,大一点的别人用机器一下就破解了. 下面看图示: 样子大概是这样的. 源码在这 百度网盘: ...
- HBuilder:一个不错的web前端IDE(代码编辑器)
Web前端开发,2000之后基本就是三剑客的天下.到现在DW也是不错的HTMLcoder,如今的前端开发早已是JS的天下.但是DW对于JS方面就弱爆了.DW虽然支持JS语法高亮也支持JQuery Jq ...
随机推荐
- Oracle的rowid结构解析
SQL> select rowid,deptno from dept; ROWID DEPTNO ------------------ ---------- A ...
- 蜗牛历险记(二) Web框架(下)
Web框架第三篇--缓存篇 缓存的优劣很大程度上决定了框架的效率,一个有节操的缓存它应该是高效的,利用率高的,具备更多扩展功能的. 一.介绍之前 计算机各个硬件的运行效率是不一样的,CPU>&g ...
- 初识Tower Defense Toolkit
Tower Defense Toolkit 做塔防游戏的插件 主要层次如下图: 1GameControl _ _Game Control(Script) _ _ _Spawn Manager _ _ ...
- Memcached(六)Memcached的并发实例
package com.sinosuperman.memcached; import java.io.IOException; import java.net.InetSocketAddress; i ...
- Bootstrap简易使用指南
1.框架 1.1全局样式 使用HTML5的doctype,scaffolding.less中定义全局样式,从2开始使用normalize.css,并使用reset.less进行简化 1.2默认栅格系统 ...
- A Neural Network in 11 lines of Python
A Neural Network in 11 lines of Python A bare bones neural network implementation to describe the in ...
- YII CJson类
CJson文档: http://www.yiiframework.com/doc/api/1.1/CJSON CJson::encode可以编码任何类型的数据:源码如下: public static ...
- Android进阶篇-线程分析(一)
转载自:http://www.trinea.cn/android/java-android%E7%BA%BF%E7%A8%8B%E6%B1%A0/ 介绍new Thread的弊端及Java四种线程池的 ...
- BZOJ3781: 小B的询问
3781: 小B的询问 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 146 Solved: 98[Submit][Status] Descript ...
- apache开源项目--gora
Gora 是一个应用于 NoSQL 数据库的 ORM 框架,支持包括:Apache HBase/Apache Cassandra