利用jQuery和HTML5实现无刷新Ajax风格的表单
- - CSDN博客推荐文章 利用jQuery我们能够做出一些相当震撼的网页效果. jQuery的出现使DOM的操作更加的简单易用. 下面的教程展示了如何利用jQuery创建一个HTML5效果的邀请表格,同时实现表格内容的检查功能. 首页的格式必须是HTML5的格式. 接下来添加jQuery库,将如下代码添加到标签之前:.
利用jQuery我们能够做出一些相当震撼的网页效果。jQuery的出现使DOM的操作更加的简单易用。下面的教程展示了如何利用jQuery创建一个HTML5效果的邀请表格,同时实现表格内容的检查功能。最终效果图:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>E-mail Invite Form Demo</title> <meta name="author" content="Jake Rocheleau"> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> </body> </html>接下来添加jQuery库,将如下代码添加到<link>标签之前:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="completeform"> <span id="error"></span> <form id="inviteform" name="inviteform" method="post" action="#"> <input type="email" name="email" id="email" placeholder="E-mail address" autocomplete="off" autocorrect="off" autocapitalize="off"> <div id="btnwrap"><button name="sendbtn" id="sendbtn" type="submit" value="Send">Send</button></div> </form> </div>
把form标签包在div#completeform中是为了稍后展示动画。一旦发送成功,我们会将span#error和form#inviteform删除,同时添加一个一组成功发送的提示信息。在input标签中我们用到了一些HTML5的属性。第一个是将input的type设置成email,在chrome和其它的一些webkit系列的浏览器中能够检查用户的输入内容是否是Email地址;而autocorrect和autocapitalize则可以简化iphone和ipod的输入。
利用正则表达式检测input的内容是否是email地址:
function isEmail(email) { // pass regex for validating an e-mail address var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; return regex.test(email); }匹配input的内容是Email成功之后的函数:
function completeInviteForm() { setTimeout(function() { $("#completeform").fadeOut(400, function(){ $(this).before('<span class="msg">All set! We will be in touch.</span>'); }); }, 1100); }
var erdiv = $("#error"); var btnwrap = $("#btnwrap"); $(document).ready(function(){ $("#sendbtn").live("click", function(e){ // 点击发送按钮触发的事件 e.preventDefault();// 禁用submit按钮的默认动作 var emailval = $("#email").val(); if(!isEmail(emailval)) {//错误的Emial erdiv.html("enter a full e-mail address!"); erdiv.css("display", "block"); } if(isEmail(emailval)) { // 正确的Email erdiv.css("color", "#719dc8"); erdiv.html("just a sec..."); btnwrap.html('<img src="img/loader.gif" alt="loading">'); completeInviteForm(); } }); });总结:在表单的设计中Email的检测是非常重要的一个环节,通过上面的Ajax的无刷新的示例可以大提升用户的体验。