基于JQuery的前端form表单操作
Jquery的前端表单操作:
jquery提供了良好的方法封装,在一些基本的操作的时候,能节省很多的麻烦,其中,在具体使用时,form表单的数据提交是最频繁也最常见的前后数据交换方式,所以在前端对于form表单的处理要解决一些问题(数据的获取,表单验证,提交验证)。
首先介绍几个方法:
(1) 关于jquery的事件方法:.submit() 表单提交事件
用法一:$ele.submit() 绑定$ele元素,不带任何参数一般是用来指定触发一个事件,用的比较少。
例
- <div id="test">点击触发<div>
- $("ele").submit(function(){
- alert('触发指定事件')
- })
- $("#text").click(function(){
- $("ele").submit() //指定触发事件
- });
用法二:$ele.submit( handler(eventObject) ) 绑定$ele元素,每次$ele元素触发点击操作会执行回调 handler函数,这样可以针对事件的反馈做很多操作了
例
- <form id="target" action="destination.html">
- <input type="submit" value="Go" />
- </form>
- $("#target").submit(function() { //绑定提交表单触发
- //this指向 from元素
- });
用法三:$ele.submit( [eventData ], handler(eventObject) ) 使用与方法二一致,不过可以接受一个数据参数,这样的处理是为了解决不同作用域下数据传递的问题
例:
- <form id="target" action="destination.html">
- <input type="submit" value="Go" />
- </form>
- $("#target").submit(11111,function(data) { //绑定提交表单触发
- //data => 1111 //传递的data数据
- });
通过在<form>元素上绑定submit事件,开发者可以监听到用户的提交表单的的行为,一般为input标签中type属性为submit时触发。
注意:form元素有默认提交表单的行为,如果通过submit这个来提交的话,需要事先阻止浏览器默认行为,传统的js处理方法是调用默认事件阻止方法e.preventDefault()方法来阻止,Jquery中可以直接在函数中使用 return false 来进行阻止 默认事件。一般在用逻辑进行前台表单限制和检测无误后调用return true,否者使用return false如下代码
- $("#target").submit(function(data) {
- return false; //阻止默认提交行为
- });
(2)serialize() 方法 序列化表单值
serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身。序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中。
例:
- <form id="forms" action="ajax" method="post">
- <div class="box">
- <table>
- <tr>
- <td>姓名</td>
- <td><input name="username" type="text"></td>
- </tr>
- <tr>
- <td>性别</td>
- <td><input name="sex" type="text"></td>
- </tr>
- <tr>
- <td>年龄</td>
- <td><input name="age" type="text"></td>
- </tr>
- <tr>
- <td>手机号</td>
- <td><input name="phone" type="text"></td>
- </tr>
- <tr><td><button type="submit">提交</button></td></tr>
- </table>
- </div>
- </form>
- <script type="text/javascript">
- $(function(){
- $("#forms").submit(function(){
- alert($("#forms").serialize());
- return false;
- })
- })
- </script>
JQuery的表单插件(这里介绍validation Plugin)
首先去官网 下载validate的文件包,一般个人编辑只需要 jquery.validete.min.js文件即可,使用时,先引入jquery的配置文件再引入这个文件。
一般客户端验证包含两个有点,第一是减少服务器的压力,一些数据的合法性全部通过前端进行过滤,不需要后台额外再写方法处理,第二就是友好的客户体验,配上ajax,能够避免长篇幅的信息输入提交-驳回-再填写-再提交的恶性循环。
使用validate之前先介绍其中的两个概念:
method(验证方法):指具体的检验逻辑,都被封装为独立的方法,例如email方法就是检验输入的字符是否满足eamil的格式
rule(使用规则):指元素与验证方法的关联,例如指定某个input标签,需要对它使用哪些具体的方法(上面的method)
validate中的核心方法 : valiadate()
使用格式为:
- <form id="test1">
- <input type="text" name="username" />
- </form>
- <script>
- var validator1;
- $(document).ready(function () {
- $("#test1").validate({
- rules: {
- username: {
- required: true,//调用method方法,限制为必填
- minlength: 2,
- maxlength: 10
- }
- },//rules规则,其中 “username”需和input表单中name属性的值一致
- messages: {
- username: {
- required: '请输入用户名',
- minlength: '用户名不能小于2个字符',
- maxlength: '用户名不能超过10个字符',
- remote: '用户名不存在'
- }
- }//end messages
- });
- });
- </script>
主要的method方法介绍:
方法名称: | 介绍(功能) |
required | 布尔值,true/false,值为true时表示为必填 |
remote | 远程校验,结合ajax,与后端数据比对,使用时以“{}”放置属性 |
minlength | 最小长度,输入数据的长短 |
maxlength | 最大长度,输入数据的长短 |
rangelength | 限制输入的长度范围,设置一个区间,输入值数不能少于或者超出 |
min | 输入的数字的最小值限制 |
max | 输入的数字的最大值限制 |
range | 输入的数字的区间限制 |
输入数据是否符合email格式 | |
url | 输入的信息是否符合地址(含http://) |
date | 输入的信息是否为标准的日期格式 |
dateISO | 输入的信息是否遵循ISO标准 |
number | 输入的信息必须为数字 |
digits | 输入的数字必须为整数 |
equalTo | 与另一个元素的值是否相等,用于验证二次密码 |
其中格外介绍一下remote方法和equalTo方法
remote 主要用于与后台进行瞬间交互,信息的判断,多用于注册表单的用户名防重复处理,采用ajax异步传输至后台,后台完成数据的判断。主要格式为:
username{
- required: true,
- minlength: 2,
- maxlength: 10,
remote:“服务器端url地址” //默认会向后台发送一个get请求,内容为 “url?usernmae=value”,返回值只需要是true/false即可,false触发提示信息,true则不
}
equalTo方法多用于注册和改密时二次密码的验证(即保证两次输入相同性),主要格式为:
equalTo:"追加要做相同判断的元素对象"
实例:
- <!DOCTYPE html>
- <html>
- <head lang="en">
- <meta charset="UTF-8">
- <title>jQuery 表单验证</title>
- <link rel="stylesheet" href="css/style.css"/>
- </head>
- <body>
- <form id="demoForm" action="checkTest" method="post">
- <fieldset>
- <legend>用户登录</legend>
- <p id="info"></p>
- <p>
- <label for="username">用户名</label>
- <input type="text" id="username" name="username"/>
- </p>
- <p>
- <label for="password">密码</label>
- <input type="password" id="password" name="password"/>
- </p>
- <p>
- <label for="confirm-password">确认密码</label>
- <input type="password" id="repassword" name="repassword"/>
- </p>
- <p>
- <input type="submit" value="登录"/>
- </p>
- </fieldset>
- </form>
- <script src="Js/jquery.js"></script>
- <script src="Js/jquery.validate.min.js"></script>
- <script>
- var validator1;
- $(document).ready(function () {
- $("#demoForm").validate({
- debug: true,
- rules: {
- username: {
- required: true,
- minlength: 2,
- maxlength: 10
- },
- password: {
- required: true,
- minlength: 2,
- maxlength: 16
- },
- repassword: {
- equalTo: "#password"
- }
- },
- messages: {
- username: {
- required: '请输入用户名',
- minlength: '用户名不能小于2个字符',
- maxlength: '用户名不能超过10个字符',
- },
- password: {
- required: '请输入密码',
- minlength: '密码不能小于2个字符',
- maxlength: '密码不能超过16个字符'
- },
- repassword: {
- equalTo: "两次输入密码不一致"
- }
- },
- });
- $("#demoForm").submit(function (data) {
- console.log(data);
- if($("#demoForm").valid())//检验数据是否出错
- {
- console.log($("#demoForm").valid());
- $.post("checkTest?"+$("#demoForm").serialize());
- }
- else{
- alert("请确认信息!");
- return false;
- }
- });
- });
- </script>
- Validation Plugin
- </body>
- </html>
- @WebServlet("/checkTest")
- public class checkTest extends HttpServlet {
- private static final long serialVersionUID = 1L;
- /**
- * @see HttpServlet#HttpServlet()
- */
- public checkTest() {
- super();
- // TODO Auto-generated constructor stub
- }
- /**
- * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- response.setCharacterEncoding("utf-8");
- String username = request.getParameter("username");
- String password = request.getParameter("password");
- System.out.println(username+password);
- response.getWriter().print("成功");
- }
- /**
- * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- doGet(request, response);
- }
- }
基于JQuery的前端form表单操作的更多相关文章
- 基于jQuery商品分类选择提交表单代码
分享一款基于jQuery商品分类选择提交表单代码.这是一款基于jQuery实现的商品信息选择列表表单提交代码. 在线预览 源码下载 实现的代码: <div class="yList ...
- 第二百二十一节,jQuery EasyUI,Form(表单)组件
jQuery EasyUI,Form(表单)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Form(表单)组件的使用方法,这个组件不依赖于 ...
- Jquery来对form表单提交(mvc方案)
来自:http://www.cnblogs.com/lmfeng/archive/2011/06/18/2084325.html 我先说明一下,这是asp.net mvc 里面的用法, Jquery来 ...
- 前端-form表单与CSS
目录 form表单 表单属性 label标签 input标签 select 下拉框标签 textarea多行文本 提交 Flask 结合form表单 初探 CSS介绍以及基本选择器 基本选择器 组合选 ...
- Django之form表单操作
小白必会三板斧 from django.shortcuts import render,HttpResponse,redirect HttpRespone:返回字符串 render:返回html页面 ...
- 使用JQuery将前端form表单数据转换为JSON字符串传递到后台处理
一般地,我们在处理表单(form表单哦)数据时,传输对象或字符串到后台,Spring MVC或SpringBoot的Controller接收时使用一个对象作为参数就可以被正常接收并封装到对象中.这种方 ...
- 前端form表单与css
form表单(******) 能够获取用户输入(输入,选择,上传的文件) 并且将用户输入的内容全部发送给后端 参数 action 控制数据提交的地址 三种书写方式 1.不写 默认就是朝当前这个页面所在 ...
- jquery自动将form表单封装成json的具体实现
前端页面:<span style="font-size:14px;"> <form action="" method="post&q ...
- web前端----html表单操作
form表单 功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互 表单能够包含input系列标签,比如文本字段.复选框.单选框.提交按钮等等. 表单还可以包含textarea.selec ...
随机推荐
- [SCOI2010]传送带 三分法
[SCOI2010]传送带 LG传送门 三分法模板. 关于为什么可以三分,我选择感性理解,有人证明了,总之我是懒得证了. 假设路径是\(A \to E \to F \to D\),\(E\)和\(F\ ...
- 为什么volatile不能保证原子性?
为什么volatile能替代简单的锁,却不能保证原子性?这里面涉及volatile,是java中的一个我觉得这个词在Java规范中从未被解释清楚的神奇关键词,在Sun的JDK官方文档是这样形容vola ...
- asp.net core结合NLog搭建ELK实时日志分析平台
0.整体架构 整体架构目录:ASP.NET Core分布式项目实战-目录 一.介绍ELK 1.说明(此篇ELK采用rpm的方式安装在服务器上)-牛刀小试 承接上一篇文章的内容准备部署ELK来展示asp ...
- awk高级进阶
第1章 awk数组练习题 1.1 文件内容(仅第一行) [root@znix test]# head -1 secure-20161219 access.log ==> secure-20161 ...
- js,jsp里将数据库Date类型获取出来后格式化显示于界面
js:new Date(rowdata.updateTime).format("yyyy-MM-dd hh:mm:ss") jsp: <fmt:formatDate valu ...
- How to: Display a Non-Persistent Object's List View from the Navigation
This example demonstrates how to display a non-persistent object's List View when a navigation item ...
- python-我的第一门编程语言
一.认识python是一个偶然,由于大学不务正业,混迹于各种电脑维修群(本人专业商务经济专业),了解过C.JAVA.HTML5以及世界上最好的编程语言PHP and so on!了解也仅仅是了解. 二 ...
- git 自己易忘的命令
1. git 更新远程分支列表 git remote update origin --prune git remote update origin -p 2. 查看远程分支: git branch - ...
- 部署asp.net MVC 4项目到iis
详细步骤如下: 1.安装WIN7的IIS功能 步骤: 控制面板->程序与功能->打开和关闭Windows功能,配置如下图所示[在Internet信息服务路径下勾选所需的就行,全部勾上也行. ...
- Android Bitmap
一 图片表示原理 图片是由每个像素点来组成 像素点就是小方块 图片的大小等于 宽*高*每个像素点的大小 二 加载图片OOM异常 解决办法 其中big.jpg是一张21.2MB的高清图 public c ...