前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >web前端之锋利的jQuery八:jQuery插件的使用(表单验证、表单提交)

web前端之锋利的jQuery八:jQuery插件的使用(表单验证、表单提交)

作者头像
Java帮帮
发布于 2018-03-16 09:00:25
发布于 2018-03-16 09:00:25
6.9K00
代码可运行
举报
运行总次数:0
代码可运行
插件也称扩展,是一种遵循一定规范的应用程序接口编写出来的程序。

1.jQuery表单验证插件-Validation: 最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件-Validation,其拥有以下优点: 内置验证规则:拥有必填、数字、email、URL和信用卡号等19类内置验证规则。 自定义验证规则:可以很方便地自定义验证规则 简单强大的验证信息提示:默认了验证信息提示,并提供自定义覆盖默认提示信息的功能 实时验证:可以通过keyup和blur事件触发验证,而不仅仅在表单提交的时候验证

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Validation</title>
    <script type="text/javascript" src="../js/jquery-3.1.1.js"></script>
    <script type="text/javascript" src="../js/jquery.validate.js"></script>
    <script type="text/javascript" src="../js/jquery.validate.messages_cn.js"></script>
    <style type="text/css">
    *{
        font-family: Verdana;
        font-size: 96%;
    }
    label{
        width: 10em;
        float: left;
    }
    label.error{
        float: none;
        color: red;
        padding-left: .5em;
        vertical-align: top;
    }
    p{
        clear: both;
    }
    .submit{
        margin-left: 12em;
    }
    em{
        font-weight: bold;
        padding-right: 1em;
        vertical-align: top;
    }
    </style>
    <script type="text/javascript">
    $(document).ready(function(){
        $("#commentForm").validate();
    });
    </script>
</head>
<body>
    <form class="cmxform" id="commentForm" method="get" action="#">
        <fieldset>
            <legend>一个简单的验证带验证提示的评论例子</legend>
            <p>
                <label for="cusername">姓名</label><em>*</em>
                <input id="cusername" name="username" size="25" class="required" minlength="2" />
            </p>
            <p>
                <label for="cemail">电子邮件</label><em>*</em>
                <input id="cemail" name="email" size="25" class="required email" />
            </p>
            <p>
                <label for="curl">网址</label><em>*</em>
                <input id="curl" name="url" size="25" class="url" value="" />
            </p>
            <p>
                <label for="ccomment">你的评论</label><em>*</em>
                <textarea id="ccomment" name="comment" cols="22" class="required"></textarea>
            </p>
            <p>
                <input class="submit" type="submit" value="提交" />
            </p>
        </fieldset>     
    </form>
</body>
</html>

首先引入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript" src="../js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="../js/jquery.validate.js"></script>

确定哪个表要被验证 $(“#commentForm”).validate();

针对不同字段,进行验证规则编码 class=”required” 为必须填写 minlength=”2” 为最小长度为2 class=”required email” 必须填写,内容必须是email格式 class=”url” 为url格式验证

使提示是中文,导入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript" src="../js/jquery.validate.messages_cn.js"></script>

2.jQuery表单插件——Form: jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易的,无侵入的升级HTML表单以支持Ajax。jQuery Form有两个核心方法-ajaxForm()和ajaxSubmit,他们集合了从控制表单formSerialize()、fieldSerialize()、fieldValue()、clearForm()、clearFields()、resetForm()等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>插件</title>
    <script type="text/javascript" src="../js/jquery-3.1.1.js"></script>
    <script type="text/javascript" src="../js/jquery.form.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
        //绑定id为myForm的表单并提供一个简单的回调函数
        $("#myForm").ajaxForm(function(){
            $("#output1").html("提交成功!欢迎下次再来!").show();
        });
    });
    </script>
</head>
<body>
    <form id="myForm" action="demo.php" method="post">
        名称:<input type="text" name="name" /><br>
        地址:<input type="text" name="address" /><br>
        自我介绍:<textarea name="comment"></textarea><br>
        <input type="submit" id="test" value="提交" /><br>
        <div id="output1" style="display:none;"></div>
    </form>
</body>
</html>

当表单被提交时,“姓名”、“地址”、“自我介绍”字段的值会以无刷新的方式提交到文件demo.PHP中。如果服务器返回一个成功的状态,那么用户就会看到“提交成功!欢迎下次再来”的提示

核心方法 ajaxForm()和ajaxSubmit()

通过核心方法ajaxForm(),能很容易地将表单升级为Ajax提交方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$("#myForm").ajaxForm(function(){
    $("#output1").html("提交成功!欢迎下次再来!").show();
});
Form插件还有一个核心方法就是ajaxSubmit(),也能完成用同样的功能
$("#myForm").submit(function(){
    $(this).ajaxSubmit(function(){
        $("#output1").html("提交成功!欢迎下次再来!").show();
    });
    return false;//阻止表单默认提交
});

ajaxForm()和ajaxSubmit()的参数 ajaxForm()和ajaxSubmit()都能接受0个或者1个参数。当为单个的参数时,该参数既可以是一个回调函数,也可以是一个option对象。上面例子的参数就是回调函数。接下来介绍options对象,通过给ajaxForm()方法和ajaxSubmit()方法传递options对象,使得他们对表单拥有更多的控制权。 首先定义一个对象options,然后在对象里设置参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var options={
    target="#output1"//把服务器返回的内容放入id为output1的元素中
    ,beforeSubmit:showRequest//提交前的回调函数
    ,success:showResponse//提交后的回调函数
    ,url:url//默认是form的action,如果申明,则被覆盖
    ,type:type//默认是form的method ,如果申明,则被覆盖
    ,dedaType:null//“xml”、“script”、“json”等数据类型
    ,clearForm:true//成功提交后,清除所有表单元素的值
    ,resetForm:true//成功提交后,重置所有表单元素的值
    ,timeout:3000//限制请求时间,当大于3秒后,跳出请求
};

定义options对象之后,就可以把这个对象传递给ajaxForm方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$("#myForm").ajaxForm(options);

或者传递给ajaxSubmit方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$("#myForm").submit(function(){
    $(this).ajaxSubmit(options);
    return false;
});

在options对象里,指定两个回调函数,即beforeSubmit:showRequest和success:showResponse,他们分别会在表单提交前和表单提交后被调用。

beforeSubmit-提交前的回调函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function showRequest(formData,jqForm,options){
    var queryString =$.para(formData);
    return ture;
}

这个回调函数有三个参数,第一个参数formData是数组对象。在这里,使用$.param()方法把它转化成字符串,得到以下这种格式:name1&address=2 需要注意的是,当表单提交时,Form插件会以Ajax方式自动提交这些数据 第二个参数jqForm是一个DOM元素,可以把jqForm转换成DOM对象。 var formElement=jqForm[0]; var address=formElement.address.valse; 第三个参数options就是options对象。 这个回调函数中只要不返回false,表单豆浆杯允许提交;如果返回false,则会阻止表单提交。

success-提交后的回调函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function showResponse(responseText,statusText,xhr,$form){
    alert('状态:'+statusText+'\n 反悔的内容是:\n'+responseText);
}

这个回调函数有四个参数responseText,statusText,xhr,$form。其中responseText,statusText两个参数比较常用。 statusText只是返回一个状态,例如success、error等。 responseText携带着服务器返回的数据内容。responseText会根据设置的options对象中的dataType属性来返回相应数据格式的内容,具体情况如下。 (1)对于缺省的HTML返回,回调函数的第一个参数是XMLHttpRequest对象的responseText属性。 (2)当dataType属性被设置为xml时,回调函数的第一个参数是XMLHttpRequest对象的responseXML属性。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$("#xmlForm").ajaxForm({
    dataType:'xml';
    success:processXml
});
function processXml(responseXML){
    var name=$('name',responseXML).text();
    var address=$('address',responseXML).text();
    $("#xmlOut").html(name+"  "+address);
}

(3)当dataType属性被设置为json时,回调函数的第一个参数是从服务器返回的json数据对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$("#myForm").ajaxForm({
    dataType:'json';
    success:processJson
});
function processJson(data){
    $("#jsonOut").html(data.name+"  "+data.address);
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java帮帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
jQuery插件 -- Form表单插件jquery.form.js
jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地、无侵入地升级HTML表单以支持Ajax。jQuery Form有两个核心方法 -- ajaxForm() 和 ajaxSubmit(), 它们集合了从控制表单元素到决定如何管理提交进程的功能。另外,插件还包括其他的一些方法: formToArray()、formSerialize()、fieldSerialize()、fieldValue()、clearForm()、clearFields() 和 resetForm()等。 下载地址:
joshua317
2018/04/10
14.4K0
Jquery 常见案例
版权声明:本文为博主原创文章,未经博主允许不得转载。
DencyCheng
2018/11/05
7.2K0
jquery 表单验证插件validate
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="../../scripts/jquery.js" type="text/javascript"></script> <script src="lib/jquery.validate.js" type="text/javascript"></script> <style type="text/css">
用户5760343
2019/10/10
1.8K0
jquery 表单验证插件validate
jquery ajaxform插件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script src="../../scripts/jquery.js" type="text/javascript"></script> <script src="lib/jquery.form.js" type="text/javascript"></script> <script type="text/javascript"> // json
用户5760343
2019/10/10
8.6K0
jquery ajaxform插件
JQuery 学习—JQuery Validation表单验证范例[通俗易懂]
jQuery Validato表单验证插件,它是基于jQuery类库,实现了js脚本于页面html代码的分离。你可以划分多个校验组,每个组的校验都是互不影响。对一个表单对象,你只需要写一行代码就可以轻松实现无数种(理论上)脚本控制。
全栈程序员站长
2022/07/19
2K0
JqueryForm的使用方式
上面的第一种情况也可以用jquery ajax来实现 但是一旦表单中有文件上传就必须用jqueryform了
码客说
2019/10/22
2.5K0
jQuery插件jQueryValidate
jQuery Validate是一个流行的jQuery表单验证插件,用于验证用户输入的表单数据。它提供了一组简单且强大的验证规则和选项,使开发人员能够轻松地实现客户端表单验证功能。
堕落飞鸟
2023/05/18
2.8K0
【转】jQuery验证控件jquery.validate.js使用说明+中文API
一、导入js库 <script src="../js/jquery.js" type="text/javascript"></script> <script src="../js/jquery.validate.js" type="text/javascript"></script> 二、默认校验规则 (1)required:true                必输字段 (2)remote:"check.php"      使用ajax方法调用check.php验证输入值 (3)email:
用户1696846
2018/07/16
5K0
jQuery基础(五)一Ajax应用与常用插件-imooc
本章介绍jQuery中支持Ajax的各种方法和函数,阐述通过Ajax交互的过程与常用方法,重点介绍核心方法$.ajax()的运用技巧。通过ajax全局事件的介绍,进一步巩固前面所学基础内容。
chenchenchen
2023/01/30
16.9K0
jquery form
引用jquery.form <script type="text/javascript" src="http://libs.useso.com/js/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript" src="http://libs.useso.com/js/jquery.form/3.50/jquery.form.min.js"></script> ajaxSubmit与ajaxForm 提交配置参数 var opti
码客说
2019/10/22
2.6K0
用jquery实现表单验证_jquery验证插件
功能强大的 jQuery 表单验证插件,适用于日常的 E-mail、电话号码、网址等验证及 Ajax 验证,除自身拥有丰富的验证规则外,还可以添加自定义的验证规则。
全栈程序员站长
2022/11/09
4.7K0
关于表单重复提交问题
问题引入:当我们在做一个页面数据提交的时候,当我们连续点击提交按钮,因为快速连续点击,因为速度过快,页面还来不及反应,导致页面从复提交。。
小小许
2018/09/20
1.8K0
jquery的form表单提交
在Web开发中,表单提交是一个常见的操作,通过表单提交用户可以向服务器发送数据。jQuery是一个流行的JavaScript库,可以简化处理JavaScript的操作,包括表单提交。在本篇博客中,我们将介绍如何使用jQuery来实现表单提交操作。
大盘鸡拌面
2024/05/08
6540
JQuery.validationEngine表单验证插件
JQuery.validationEngine表单验证控件功能强大,自带了样式显示模式:
全栈程序员站长
2022/11/15
2K0
JQuery.validationEngine表单验证插件
.NET MVC第七章、jQuery插件验证
如果是VS2019在创建的过程中自带这些内容,VS2017则会少一些,例如jQuery是1.0版本的,也会有验证功能的js。 
红目香薰
2022/11/30
1.4K0
.NET MVC第七章、jQuery插件验证
form表单提交的几种方式
完成后启动项目 并访问http://localhost:8080/query.html 输入用户名和密码
全栈程序员站长
2022/07/21
6.8K0
form表单提交的几种方式
jQuery Validate自定义各种验证方法jQuery Validate自定义各种验证方法
jQuery Validate自定义各种验证方法 validate-methods.js /***************************************************************** jQuery Validate扩展验证方法 *****************************************************************/ $(function(){ // 判断整数value是否等于0
一个会写诗的程序员
2018/08/17
5.3K0
Web前端学习笔记之jQuery基础
维护IE678是一件让人头疼的事情,一般我们都会额外加载一个CSS和JS单独处理。值得庆幸的是使用这些浏览器的人也逐步减少,PC端用户已经逐步被移动端用户所取代,如果没有特殊要求的话,一般都会选择放弃对678的支持。
Jetpropelledsnake21
2019/02/15
3.6K0
PHP+AjaxForm异步带进度条上传文件实例代码
在使用ajaxForm方法之前,首先需要安装form.js的插件,网上有; 一、首先说用法,ajaxForm可以接收0或1个参数,该参数可以是一个变量、一个对象或回调函数,这个对象主要有以下参数:
用户2323866
2021/06/29
1.4K0
Web前端-Ajax基础技术(下)
ajax,web程序是将信息放入公共的服务器,让所有网络用户可以通过浏览器进行访问。
达达前端
2019/07/03
2.6K0
Web前端-Ajax基础技术(下)
相关推荐
jQuery插件 -- Form表单插件jquery.form.js
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档