1. 程式人生 > >頁面分析 EasyUI的form表單的一個自由的校驗開啟

頁面分析 EasyUI的form表單的一個自由的校驗開啟

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>tspace</title>
<link rel="icon" type="image/x-icon" href="/res/images/tspace/favicon.ico">
<link rel="stylesheet" type="text/css" href="/res/js/jquery-easyui/themes/gray/easyui.css">
<link rel="stylesheet" 
type="text/css" href="/res/js/jquery-easyui/themes/icon.css"> <link rel="stylesheet" type="text/css" href="/res/js/jquery-easyui/themes/color.css"> <link rel="stylesheet" type="text/css" href="/res/css/common.css"> <link rel="stylesheet" type="text/css" href="/res/css/icon.css"> <script type="text/javascript"
> var basePath = ''; var noAuthBtn = ''; var authField = ''; </script> <script type="text/javascript" src="/res/js/jquery-easyui/jquery.min.js"></script> <script type="text/javascript" src="/res/js/jquery-easyui/jquery.easyui.min.js"></script> <script type="text/javascript" src=
"/res/js/jquery-easyui/locale/easyui-lang-zh_CN.js"></script> <script type="text/javascript" src="/res/js/common.js"></script> </head> <body style="visibility: hidden;"><link rel="stylesheet" type="text/css" href="/res/css/login.css"> <script type="text/javascript"> if (self != top) { //主頁不允許在iframe中 alert("我是login.html頁面"); console.log("我是login.html頁面"); top.window.location.reload(); }</script> <div class="crm-register-bg"> <div class="crm-register-form"> <header class="crm-login1-header"> <h1>歡迎登入tspace</h1> </header> <form id="ff"class="easyui-form" method="post" action="tspaceHead/main" data-options="novalidate:true"> <div class="crm-register-body crm-login1-body"> <div class="crm-register-input-warpper"> <input type="text" class="crm-register-input easyui-validatebox" data-options="required:true,validType:'length[2,20]'" value="tspace" name="user_name" id="user_name" placeholder="請輸入使用者名稱" tabindex="1"> </div> <div class="crm-register-input-warpper"> <input type="password" class="crm-register-input easyui-validatebox" data-options="required:true" class="crm-register-input easyui-validatebox" value="123456" name="password" id="password" placeholder="請輸入密碼" tabindex="1" onfocus=""> </div> <div class="crm-register-input-warpper" style="display: none;"> <input type="text" class="crm-register-input " data-options="required:true,validType:'length[4,4]'" name="randomCode" id="randomCode" placeholder="請輸入識別碼,點選圖片可更換" tabindex="3"> <img id="codeImage" title="點選重新整理驗證碼" src="login/randomCode" style="position: absolute; right: 20px; top: 4px; cursor: pointer;" onclick="this.src = 'login/randomCode?d=' + new Date().getTime();"> </div> </div> <div class="crm-register-footer"> <a href="javascript:login();" class="pg-btn-submit dinline-block " tabindex="3" act="login_btn">登 錄</a> </div> </form> <p class="crm-loginfooter-info" style=""> <a href="javascript: $('#user_name').val('readonly');" class="register_link" tabindex="6" act="reg_link">readonly</a> 登陸,體驗只讀許可權 </p> </div> </div> <script type="text/javascript"> $(function() { //獲取焦點樣式 $("#ff :input").focus(function() { $(this).parent().addClass("actived"); }).blur(function() { $(this).parent().removeClass("actived"); }); }); //回車登陸 document.onkeydown = function() { if(event.keyCode==13) { login(); return false; } } function login() { if($("#ff").form('enableValidation').form('validate')) { var param = {"user_name":$(":input[name='user_name']").val(), "password":$(":input[name='password']").val(), "randomCode":$(":input[name='randomCode']").val() } $.post("/login/login", param, function(data) { if(data.result == "success") { $('#ff').submit(); location.href = "main"; }else { if(data.data) { $("#randomCode").parent().show(); $("#randomCode").validatebox({ required: true }); } showWarnMsg(data.msg); $("#codeImage").click(); } }); } } </script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "//hm.baidu.com/hm.js?96bb51056dd3bece3de02a351f072069"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>

分析:jQuery EasyUI 表單外掛 - Form 表單

通過 $.fn.form.defaults 重寫預設的 defaults。

表單(form)提供多種方法來執行帶有表單欄位的動作,比如 ajax 提交、載入、清除,等等。當提交表單時,呼叫 'validate' 方法來檢查表單是否有效。

用法

建立一個簡單的 HTML 表單。構建表單並給 id、action、method 賦值。

<form id="ff" method="post">
    <div>
		<label for="name">Name:</label>
		<input class="easyui-validatebox" type="text" name="name" data-options="required:true" />
    </div>
    <div>
		<label for="email">Email:</label>
		<input class="easyui-validatebox" type="text" name="email" data-options="validType:'email'" />
    </div>
    ...
</form>

讓表單(form)成為 ajax 提交的表單(form)

$('#ff').form({
    url:...,
    onSubmit: function(){
		// do some check
		// return false to prevent submit;
    },
    success:function(data){
		alert(data)
    }
});
// submit the form
$('#ff').submit();

去做一個提交動作

// call 'submit' method of form plugin to submit the form
$('#ff').form('submit', {
    url:...,
    onSubmit: function(){
		// do some check
		// return false to prevent submit;
    },
    success:function(data){
		alert(data)
    }
});

通過額外的引數提交

$('#ff').form('submit', {
    url:...,
    onSubmit: function(param){
		param.p1 = 'value1';
		param.p2 = 'value2';
    }
});

處理提交響應

提交一個 ajax 表單(form)是非常簡單的。當提交完成時使用者可以獲得響應資料。請注意,響應資料是來自伺服器的原始資料。對響應資料的解析動作要求獲得正確的資料。

例如,響應資料假設是 JSON 格式,一個典型的響應資料如下所示:

{
    "success": true,
    "message": "Message sent successfully."
}

現在在 'success' 回撥函式中處理 JSON 字串。

$('#ff').form('submit', {
    success: function(data){
		var data = eval('(' + data + ')'); // change the JSON string to javascript object
		if (data.success){
			alert(data.message)
		}
    }
});

方法

名稱引數描述
destroynone移除並銷燬該元件。
validatenone進行驗證以判定文字框的內容是否有效。
isValidnone呼叫 validate 方法並且返回驗證結果,true 或者 false。
enableValidationnone啟用驗證。該方法自版本 1.3.4 起可用。
disableValidationnone禁用驗證。該方法自版本 1.3.4 起可用。

login.html