JQuery.Validation Usage.

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在網頁開發過程中Form的驗證或者表單驗證操作都是必不可少的。如今有許多的驗證插件,這裏只介紹JQuery Validation.js的插件使用,這個也是VS中自帶的驗證腳本。</span>

JQuery使用上也很廣泛兼容性也很好,是許多開發人員的最佳選擇,還有其它的驗證插件有EasyUI. bootstrap框架的驗證方式(bootstrap jQuery-Validation-Bootstrap-tooltip demo).針對bootstrap主要還是它的響應式的排

版,移動終端及電腦都可以訪問。


關於JQuery.Validation.js的使用上可以參考博文,人家寫得很全。


Bootstrap中的表單很多都是用div模擬form的。網上查好許多都是驗證表單都在在form裏,如果是DIV我們的驗證方法是不是還是可以使用呢?而且在提交按鈕中,如果我提交按鈕

不是type類型,我又是如何去提交驗證的form呢?以下主要是解決這兩個問題,如果能解決此兩個問題自然你應該會使用驗證插件。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<link rel="stylesheet" type="text/css" href="bootstrap/bootstrap.min.css"/>
<script type="text/javascript" src="bootstrap/jquery.min.js"></script>
<script type="text/javascript" src="scripts/jquery.validate.min.js"></script>
<script type="text/javascript" src="scripts/jquery.validation.message.cn.js"></script>
<script type="text/javascript" src="bootstrap/bootstrap.min.js"></script>
<script type="text/javascript" src="bootstrap/jQuery-Validation-Bootstrap-tooltip.js"></script>
<script type="text/javascript">
$(function(){
	/*triggle button event by maunal*/
	$("a.btn").click(function(){
		$("#myModal").modal("show");
	});
	
	/*Submit form*/
	$("#webinarForm").validate({
		rules:{
				fullname:{required:true,isName:true,minlength:2},
				email:{required:true,email:true},
				tel:{required:true,isTel:true},
				qq:{isQQ:true}
			},
		nsubmit:true,
		onclick:true,
		focusInvalid:true,
		focusCleanup:false,
		validClass: "",
		errorClass:"text-error",
		errorElement:"em",
		tooltip_options:{
			"_all_":{placement:"top"}
			},
		submitHandler:function(form){
			alert("submit");
			//comment out AJAX for demo
			/*$.ajax({
				type:post,
				url:"",
				dataType:"text",
				data:"",
				success: function(){
					alert("success");
					},
				error:function(data,xhrStatus){
					alert("error");
					},
				complete:function(){
					alert("complete");
					}
			});*/
			
		},
		showErrors: function(errorMap, errorList) {
    		alert("Your form contains " + this.numberOfInvalids() + " errors, see details below.");
		    this.defaultShowErrors();
		  },
		invalidHandler: function(form, validator) {

			alert("There are "+this.numberOfInvalids()+" errors");
		}
	});
	/*Submit form*/
	
})
</script>
<style type="text/css">
.text-error {
	color: red;
}
</style>
</head>

<body>
<a class="btn btn-default">Click Me</a>
<div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h3 id="myModalLabel">GKFX-網絡講座註冊</h3>
      </div>
      <div class="modal-body">
        <form id="webinarForm">
          <div class="form-group">
            <label>全名</label>
            <input name="fullname" class="form-control required" data-placement="top" data-trigger="manual" data-content="Must be at least 3 characters long, and must only contain letters." type="text">
          </div>
          <div class="form-group">
            <label>郵件</label>
            <input name="email" class="form-control email"  data-placement="top" data-trigger="manual" data-content="Must be a valid e-mail address ([email protected])" type="text">
          </div>
          <div class="form-group">
            <label>電話</label>
            <input name="tel" class="form-control phone"  data-placement="top" data-trigger="manual" data-content="Must be a valid phone number (999-999-9999)" type="text">
          </div>
          <div class="form-group">
            <label>QQ號碼</label>
            <input name="qq" class="form-control phone"  data-placement="top" data-trigger="manual" data-content="Must be a valid phone number (999-999-9999)" type="text">
          </div>
          <div class="form-group modal-footer">
            <input type="submit" class="btn btn-success pull-right" value="馬上註冊"/>
            <p class="help-block pull-left text-danger hide" id="form-error">  The form is not valid. </p>
          </div>
          <input type="hidden" id="dialogId"/>
        </form>
        <div class="clear"><span></span></div>
      </div>
    </div>
  </div>
</div>
</body>
</html>



// JavaScript Document
/**
*Override the default messages with Chinese format.
*
*/
jQuery.extend(jQuery.validator.messages,{
	required:"必填字段",
	remote:"請修正字段",
	email:"請輸入正確格式的電子郵件",
	url:"請輸入有效網址",
	date:"請輸入有效日期",
	dateISO:"請輸入合法日期(ISO)",	
	number:"請輸入數值",	
	digits:"請輸入整數",	
	creditcard:"請輸入有效信用卡號",	
	equalTo:"請再次輸入相同值",	
	accept:"請輸入擁有合法後綴名的字符串",	
	maxlength:jQuery.validator.format("最大長度爲{0}"),	
	minlength:jQuery.validator.format("最小長度爲{0}"),	
	rangelength:jQuery.validator.format("長度介於{0}和{1}的值"),	
	range:jQuery.validator.format("值應介於{0}和{1}"),	
	max:jQuery.validator.format("值最大爲{0}"),
	min:jQuery.validator.format("值最小爲{0}")	
});


/**
*Validaet Mobile phone.
*
*/
jQuery.validator.addMethod("isTel",function(value,element){
	var pattern=/^1[3|5|8]\d{9}$/;
	return this.optional(element)||pattern.test(value);
	},"請填寫正確手機號碼")
/**
*Validaet Chinese family name.
*
*/
jQuery.validator.addMethod("isName",function(value,element){
	 var pattern = /^[\u4e00-\u9fa5_\.a-zA-Z]+$/;
	 return this.optional(element)||pattern.test(value);
	},"名字格式不正確")

/**
*Value QQ 
*/
jQuery.validator.addMethod("isQQ",function(value,element){
	var pattern=/^[1-9](\d){4,9}$/;
	return this.optional(element)||pattern.test(value);
	},"QQ號碼格式不對")

/**
Validate Postal Code
*/  
jQuery.validator.addMethod("isZipCode", function(value, element) {     
    var tel = /^[0-9]{6}$/;  
    return this.optional(element) || (tel.test(value));  
}, "郵政編碼格式不對");  




發佈了33 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章