【转】Validate + Boostrap tooltip 表单验证示例

一、工具准备:

1、boostrap: 下载地址 http://getbootstrap.com/

jquery: jQuery版本需大于或等于1.8.0

   jquery.validate.min.js

2、validate 及 tooltip 使用教程:

  菜鸟教程地址:http://www.runoob.com/jquery/jquery-plugin-validate.html 

以下指示列出了一些常用配置项,比较重要的加红区别。

validate ()的可选项

描述 代码
debug:进行调试模式(表单不提交)。
$(".selector").validate
({
	debug:true
})
把调试设置为默认。
$.validator.setDefaults({
	debug:true
})
submitHandler:通过验证后运行的函数,里面要加上表单提交的函数,否则表单不会提交。
$(".selector").validate({
	submitHandler:function(form) {
		$(form).ajaxSubmit();
	}
})
ignore:对某些元素不进行验证。
$("#myform").validate({
	ignore:".ignore"
})
rules:自定义规则,key:value 的形式,key 是要验证的元素,value 可以是字符串或对象。
$(".selector").validate({
	rules:{
		name:"required",
		email:{
			required:true,
			email:true
		}
	}
})
messages:自定义的提示信息,key:value 的形式,key 是要验证的元素,value 可以是字符串或函数。
$(".selector").validate({
	rules:{
		name:"required",
		email:{
			required:true,
			email:true
		}
	},
	messages:{
		name:"Name不能为空",
		email:{
			required:"E-mail不能为空",
			email:"E-mail地址不正确"
		}
	}
})
groups:对一组元素的验证,用一个错误提示,用 errorPlacement 控制把出错信息放在哪里。
$("#myform").validate({
	groups:{
		username:"fname
		lname"
	},
	errorPlacement:function(error,element) {
		if (element.attr("name") == "fname" || element.attr("name") == "lname")
			error.insertAfter("#lastname");
		else
			error.insertAfter(element);
	},
   debug:true
})
Onubmit:类型 Boolean,默认 true,指定是否提交时验证。
$(".selector").validate({
	onsubmit:false
})
onfocusout:类型 Boolean,默认 true,指定是否在获取焦点时验证。
$(".selector").validate({
	onfocusout:false
})
onkeyup:类型 Boolean,默认 true,指定是否在敲击键盘时验证。
$(".selector").validate({
   onkeyup:false
})
onclick:类型 Boolean,默认 true,指定是否在鼠标点击时验证(一般验证 checkbox、radiobox)。
$(".selector").validate({
   onclick:false
})
focusInvalid:类型 Boolean,默认 true。提交表单后,未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)会获得焦点。
$(".selector").validate({
   focusInvalid:false
})
focusCleanup:类型 Boolean,默认 false。当未通过验证的元素获得焦点时,移除错误提示(避免和 focusInvalid 一起使用)。
$(".selector").validate({
   focusCleanup:true
})
errorClass:类型 String,默认 "error"。指定错误提示的 css 类名,可以自定义错误提示的样式。
$(".selector").validate({
	errorClass:"invalid"
})
errorElement:类型 String,默认 "label"。指定使用什么标签标记错误。
$(".selector").validate
   errorElement:"em"
})
wrapper:类型 String,指定使用什么标签再把上边的 errorELement 包起来。
$(".selector").validate({
   wrapper:"li"
})
errorLabelContainer:类型 Selector,把错误信息统一放在一个容器里面。
$("#myform").validate({
	errorLabelContainer:"#messageBox",
	wrapper:"li",
	submitHandler:function() {
		alert("Submitted!")
	}
})
showErrors:跟一个函数,可以显示总共有多少个未通过验证的元素。
$(".selector").validate({
	showErrors:function(errorMap,errorList) {
        $("#summary").html("Your form contains " + this.numberOfInvalids() + " errors,see details below.");
		this.defaultShowErrors();
	}
})
errorPlacement:跟一个函数,可以自定义错误放到哪里。
$("#myform").validate({
	errorPlacement:function(error,element) {
		error.appendTo(element.parent("td").next("td"));
   },
   debug:true
})
success:要验证的元素通过验证后的动作,如果跟一个字符串,会当作一个 css 类,也可跟一个函数。
$("#myform").validate({
	success:"valid",
        submitHandler:function() {
			alert("Submitted!")
		}
})
highlight:可以给未通过验证的元素加效果、闪烁等。  
unhighlight: 可以给通过验证的元素加特效
$("#myform").validate({
	unhighlight:function(element,errorClass,validClass) {
		//TODO
   }
})

下面是一些提示工具(Tooltip)插件中有用的方法:

方法 描述 实例
Options: .tooltip(options) 向元素集合附加提示工具句柄。
$().tooltip(options)
Toggle: .tooltip(‘toggle‘) 切换显示/隐藏元素的提示工具。
$(‘#element‘).tooltip(‘toggle‘)
Show: .tooltip(‘show‘) 显示元素的提示工具。
$(‘#element‘).tooltip(‘show‘)
Hide: .tooltip(‘hide‘) 隐藏元素的提示工具。
$(‘#element‘).tooltip(‘hide‘)
Destroy: .tooltip(‘destroy‘) 隐藏并销毁元素的提示工具。
$(‘#element‘).tooltip(‘destroy‘)

3、添加js引用:如下,jQuery需要在最前面引用

4、页面代码:

  

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@section css{
    <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
    <style>
        .error {
            color: red;
            border-color:red;
        }

        .valid {
            color: black;
        }
    </style>
}
<div class="contrainer" style="align:center;">
    &nbsp;&nbsp; <h2>JQuery Validate 表单验证</h2>
    <div class="row " style="margin:100px 20px;">
        <div class="col-sm-5 col-sm-offset-2">
            <form class="form-horizontal" id="id_frm">
                <div class="form-group">
                    <label for="inputEmail3" class="col-sm-2 control-label">Email</label>
                    <div class="col-sm-10">
                        <input type="email" name="email" class="form-control" title="请填写邮箱地址" placeholder="Email">
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputPassword3" class="col-sm-2 control-label">Password</label>
                    <div class="col-sm-10">
                        <input type="password" name="password" class="form-control" title="请填写密码" placeholder="Password">
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <div class="checkbox">
                            <label>
                                <input type="checkbox">Remember me
                            </label>
                        </div>
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <button type="submit" class="btn btn-default">Sign in</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
@section scripts{
    <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
    <script src="~/Scripts/jquery.validate.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#id_frm").validate({
                rules: {
                    email: {
                        required: true,
                        email: true
                    },
                    password: ‘required‘
                },
                messages: {
                    email: {
                        required: "请填写邮箱地址",
                        email: "邮箱格式不正确"
                    },
                    password: "请填写密码"
                },
                errorClass: "error",
                success: ‘valid‘,
                unhighlight: function (element, errorClass, validClass) { //验证通过
                    $(element).tooltip(‘destroy‘).removeClass(errorClass);
                },
                //highlight: function (element, errorClass, validClass) { //未通过验证
                //    // TODO
                //}
                //,
                errorPlacement: function (label, element) {
                    $(element).tooltip(‘destroy‘); /*必需*/
                    $(element).attr(‘title‘, $(label).text()).tooltip(‘show‘);
                },
                submitHandler: function (form) {
                    alert(‘验证通过‘);
                }
            })
        })
    </script>
}

PS:之所以没有使用highlight来捕获未通过事件,是因为highlight函数参数中无法接收到label元素,也就无法获取错误信息,故改用errorPlacement.

5、效果如图:

      没有输入任何东西:

               

  输入错的email地址:

                    

  对比之后可以发现,tooltip 会动态改变并显示错误信息。

转自:http://www.cnblogs.com/qiufengke/p/4964893.html

时间: 2024-10-13 07:41:11

【转】Validate + Boostrap tooltip 表单验证示例的相关文章

jQuery Validate 插件,表单验证功能

连接地址:http://www.w3cschool.cc/jquery/jquery-plugin-validate.html jQuery Validate jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API.所有的捆绑方法默认使用英语作为错误信息,且已翻译成其他 37 种语言. 该插件是由 Jör

JS表单验证示例

1 </<!DOCTYPE html> 2 <html> 3 <head> 4 <title>JS表单验证</title> 5 <meta http-equiv = "content-type" content="text/html; charset = utf-8 "> 6 <link rel="stylesheet" href="JSlogin.cs

数据检验插件: Validate插件 添加自定义表单验证

jQuery.validator.addMethod("ValiPass", function(value, element,params) { var exp = new RegExp(params);//实例化正则对象,参数为传入的正则表达式 return exp.test(value);      //测试是否匹配 }, "密码必须包含数字.字母大.小写.符号四种"); 然后表单验证中 rules: { newPassword: { minlength: 8,

jquery validate插件高级表单验证

Validation(validate)插件提供了另一种方法来为一个表单添加验证,而不需要改变字段的HTML.此外,这个插件提供了广泛的附加选项来控制它如何工作.我们通过给validate()函数传递一个对象直接量来设置这些选项,其中包含了每个选项的单独对象.例如,要指定一条验证规则,我们包含了该规则的代码的一个对象.首先,紧跟着validation函数的第一个圆括号的后面,我们包含一个开始花括号,并且在函数的结束圆括号的前面,放置一个结束花括号. $('idOfForm').validate(

validate+jquery+ajax表单验证

①Html form表单内容 <form class="cForm" id="cForm" method="post" action=""> <p> <label for="user">用户名</label> <input id="user" name="user" required minlength="

一款基于jQuery的带Tooltip表单验证的注册表单

今天给大家分享一款基于jQuery的注册表单,这款注册表单的特点是确认提交注册信息时,表单会自动验证所填写的信息,如果信息填写有误,即会在相应的字段内以Tooltip提示框的形式显示错误信息.这款jQuery表单实现非常简单,使用起来相对比较轻巧. 在线预览   源码下载 这款插件js要引用jquery.js库,还有一个easyform.js 库. html代码部分如下: <div class="form-div"> <form id="reg-form&q

boostrap ajax表单验证提交

=============================================================================== 1. 1 <link href="<%=basePath %>bootstrap/css/bootstrap-datetimepicker.min.css" rel="external nofollow" rel="stylesheet" media="scre

[Liferay6.2]AUI表单验证示例

<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%> <%@ taglib uri="http://liferay.com/tld/aui" prefix="aui"%> <portle

summernote富文本编辑器配合validate表单验证无法进行表单提交的问题

1.使用summernote富文本编辑器提交图片到服务器 在使用bootstrap中,我们用到了summernote富文本编辑器,使用summernote将图片上传到服务器中,参考我的上篇文章http://www.cnblogs.com/jingmin/p/6592325.html 2.在使用summernote编辑完文本,使用validate进行表单验证出现问题的解决方案 小编在使用summernote富文本编辑器编辑完文章内容,并且上传了图片,对于编写的内容使用了validate进行了表单验