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方法介绍:

method基本方法
方法名称: 介绍(功能)
required 布尔值,true/false,值为true时表示为必填
remote 远程校验,结合ajax,与后端数据比对,使用时以“{}”放置属性
minlength 最小长度,输入数据的长短
maxlength 最大长度,输入数据的长短
rangelength 限制输入的长度范围,设置一个区间,输入值数不能少于或者超出
min 输入的数字的最小值限制
max 输入的数字的最大值限制
range 输入的数字的区间限制
email 输入数据是否符合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表单操作的更多相关文章

  1. 基于jQuery商品分类选择提交表单代码

    分享一款基于jQuery商品分类选择提交表单代码.这是一款基于jQuery实现的商品信息选择列表表单提交代码. 在线预览   源码下载 实现的代码: <div class="yList ...

  2. 第二百二十一节,jQuery EasyUI,Form(表单)组件

    jQuery EasyUI,Form(表单)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Form(表单)组件的使用方法,这个组件不依赖于 ...

  3. Jquery来对form表单提交(mvc方案)

    来自:http://www.cnblogs.com/lmfeng/archive/2011/06/18/2084325.html 我先说明一下,这是asp.net mvc 里面的用法, Jquery来 ...

  4. 前端-form表单与CSS

    目录 form表单 表单属性 label标签 input标签 select 下拉框标签 textarea多行文本 提交 Flask 结合form表单 初探 CSS介绍以及基本选择器 基本选择器 组合选 ...

  5. Django之form表单操作

    小白必会三板斧 from django.shortcuts import render,HttpResponse,redirect HttpRespone:返回字符串 render:返回html页面 ...

  6. 使用JQuery将前端form表单数据转换为JSON字符串传递到后台处理

    一般地,我们在处理表单(form表单哦)数据时,传输对象或字符串到后台,Spring MVC或SpringBoot的Controller接收时使用一个对象作为参数就可以被正常接收并封装到对象中.这种方 ...

  7. 前端form表单与css

    form表单(******) 能够获取用户输入(输入,选择,上传的文件) 并且将用户输入的内容全部发送给后端 参数 action 控制数据提交的地址 三种书写方式 1.不写 默认就是朝当前这个页面所在 ...

  8. jquery自动将form表单封装成json的具体实现

    前端页面:<span style="font-size:14px;"> <form action="" method="post&q ...

  9. web前端----html表单操作

    form表单 功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互 表单能够包含input系列标签,比如文本字段.复选框.单选框.提交按钮等等. 表单还可以包含textarea.selec ...

随机推荐

  1. luogu1117 [NOI2016]优秀的拆分

    luogu1117 [NOI2016]优秀的拆分 https://www.luogu.org/problemnew/show/P1117 后缀数组我忘了. 此题哈希可解决95分(= =) 设\(l_i ...

  2. pycharm字体放大缩小设置

    放大设置 File —> settings—> Keymap —>在搜寻框中输入:increase —> Increase Font Size(双击) —> 在弹出的对话 ...

  3. Docker部署Redis容器

    从仓库下载镜像 sudo docker pull redis   创建容器(前提:将redis.conf文件放入到/Users/chengang/docker/redis目录里面) docker ru ...

  4. 互联网校招面试必备——Java多线程

    本文首发于我的个人博客:尾尾部落 本文是我刷了几十篇一线互联网校招java后端开发岗位的面经后总结的多线程相关题目,虽然有点小长,但是面试前看一看,相信能帮你轻松啃下多线程这块大骨头. 什么是进程,什 ...

  5. C++可继承的单例基类模板

    目录 一.介绍 二.代码 三.关键处 五.参考资料 一.介绍 最近在写一个项目,其中用到好几个单例,类本身的设计不是很复杂,但是如果每个都写一遍单例又觉得有点冗余:所以查资料写了一个单例基类模板,只要 ...

  6. openstack系列文章(一)

    学习openstack的系列文章-虚拟化 虚拟化 KVM CPU 虚拟化 KVM 内存虚拟化 全虚拟化 I/O 设备 半虚拟化 I/O 设备 I/O PCI PCIe 设备直接分配 SR-IOV 在 ...

  7. SDN学习笔记

    SDN 什么是SDN SDN是一种框架和思想,核心诉求是通过软件控制网络,实现业务的自动化部署,为方便软件来控制网络,希望控制面和转发面是分离的. 例如,传统的交换机内部,由交换机负责具体的网络流量往 ...

  8. 对PBFT算法的理解

    PBFT论文断断续续读了几遍,每次读或多或少都会有新的理解,结合最近的项目代码,对于共识的原理有了更清晰的认识.虽然之前写过一篇整理PBFT论文的博客,但是当时只是知道了怎么做,却不理解为什么.现在整 ...

  9. ifconfig命令详情

    基础命令学习目录首页 原文链接:https://blog.csdn.net/weixin_37886382/article/details/79716879 许多windows非常熟悉ipconfig ...

  10. 使用cors解决跨域遇到浏览器发出options嗅探

    前言: 本地开发起的服务器,通过修改hosts文件设置域名映射到本地,接口在测试环境 1. 服务器端设置cors, 配置access-control-allow-origin 头部 使用蚂蚁金服的up ...