目录:

★、文本输入框(easyui-textbox

★、数字框(easyui-numberbox

★、时间(easyui-datebox

★、文本域(easyui-textbox easyui-validatebox

★、下拉框(easyui-combobox

特别说明:

验证机制的关闭和启用。可以采用 data-options="novalidate:true" 先关闭元素的验证机制,再在表单提交之际开启验证。这样可以避免用户在第一次看到表单时就全显示红色提示的情形

示例代码如下:

1、HTML声明:

<input class="easyui-combobox" name="Operator"

required="true" missingmessage="请选择一项"

data-options="novalidate:true, valueField:

或者

<th>

<label>字节数:</label>

</th>

<td>
<input
    type="text"
    name="BytesNum"
    class="easyui-numberbox"
    novalidate="true"
    min="0" max="99000000" precision="0" required="true" missingmessage="请填写 字节数,确保是有效的正整数" />

</td>

2、JS验证:(灰色部分可以去除)

// "分配任务"保存

$btnPreAssignSave_GeneralTasks.click(function () {

$('.validatebox-text').validatebox('enableValidation').validatebox('validate');

var validate = $maintainForm.form('enableValidation').form('validate');

if (!validate) {

return false;

}

注意,在验证阶段要先“开启验证”(enableValidation),再“执行验证”(validate)。

参考示例:
http://www.jeasyui.net/plugins/167.html
http://www.jeasyui.net/demo/419.html

★、文本输入框(easyui-textbox


<input class="easyui-textbox" type="text" name="BookName"

validtype="length[ 0, 150 ]"/>

一般只需限定输入字符的长度即可

、数字框(easyui-numberbox


包括整数、小数,以及数字大小范畴的限定。

<tr>

<th>

<label>起始页码:</label>

</th>

<td>

<input class="easyui-numberbox" name="BeginPageNum"

min="0"max="10000000" precision="0"

required="true" missingmessage="请填写 起始页码(0--10000000)" />

</td>

<th>

<label>结束页码:</label>

</th>

<td>

<input class="easyui-numberbox" name="EndPageNum"

min="0"max="10000000" precision="0"

required="true" missingmessage="请填写 结束页码(0--10000000)" />

</td>

</tr>

可以限定数字的大小范围,precision 属性用来限定小数点位数,required确保必填。

自定义验证:在实际业务中,起始页码和结束页码之间可能有这样一个规则“确保结束页码大于(>)起始页码”,这时只需调用BiggnerPageNumThanTarget 自定义扩展,传入所在表单的 id相比较元素的 name,以及为第 3 个参数撰写合适的验证消息即可:

<tr>

<th>

<label>起始页码:</label>

</th>

<td>

<input class="easyui-numberbox" name="BeginPageNum"
required="true" missingmessage="请填写 起始页码,确保是有效的正整数"

min="0" max="99000000" precision="0" />

</td>

<th>

<label>结束页码:</label>

</th>

<td>

<input class="easyui-numberbox" name="EndPageNum"
required="true" missingmessage="请填写 结束页码,确保是有效的正整数"

min="0" max="99000000" precision="0"

validtype="BiggnerPageNumThanTarget['preAssignForm','BeginPageNum', '请确保 结束页码 大于 起始页码']" />

</td>

</tr>

以上针对“结束页码”调用了 BiggnerPageNumThanTarget 这一自定义扩展,当用户输入结束页码的数值较小时,将提示用户“请确保 结束页码 大于 起始页码”。

★、时间(easyui-datebox


验证重点

1、在页面的脚本中加入验证扩展 SmallerDateThanTarget

B

iggnerDateThanTarget

2、在时间控件中加入 validtype 属性

3、数组型参数,第一个参数是表单 id,第二个参数是用来比较的目标控件的 name,务必注意。

(只要是通过表单 id 和其元素 name 就可以定位一个元素的情形,就不要再为单独元素定义 id ,保持表单的简洁,即显式呈现的东西一定要存在确切意义。)

validtype="SmallerDateThanTarget['preAssignForm','EndDate']"

详细阐述

主要是对时间范围的验证。

可以使用扩展函数来限定开始时间和结束时间之间的范围。

往往 起始时间要偏小,而且是小于 结束时间所以起始时间调用 SmallerDateThanTarget方法;

与此同时,结束时间势必就要大一些,而且是大于 起始时间,所以结束时间调用

B

iggnerDateThanTarget 方法。

<tr>

<th>

<label>开始时间:</label>

</th>

<td>

<input class="easyui-datebox" name="BeginDate"

editable="false" required="true" missingmessage="请填写时间" />

</td>

<th>

<label>结束时间:</label>

</th>

<td>

<input class="easyui-datebox" name="EndDate"

editable="false" required="true" missingmessage="请填写时间"

validtype="BiggnerDateThanTarget['preAssignForm','BeginDate','请确保 结束时间 大于 开始时间']" />

</td>

</tr>

$.extend($.fn.validatebox.defaults.rules, {

BiggnerDateThanTarget: {

validator: function(currentElementValue, param) {

if(!$.isArray(param)) {

window.alert("调用验证器时所传参数必须是数组格式:validtype=\"DateboxCheck['preAssignForm','BeginDate', '提示信息']\" ");

return false;

}

var scopeElementID = param[0];

var targetElementName = param[1];

var targetElement = $("#" + scopeElementID).find(":input[name='" + targetElementName + "']").val();

return currentElementValue >= targetElement;

},

message: '{2}'

}

});

$.extend($.fn.validatebox.defaults.rules, {

SmallerDateThanTarget: {

validator: function(currentElementValue, param) {

if(!$.isArray(param)) {

window.alert("调用验证器时所传参数必须是数组格式:validtype=\"DateboxCheck['preAssignForm','BeginDate', '提示信息']\" ");

return false;

}

var scopeElementID = param[0];

var targetElementName = param[1];

var targetElement = $("#" + scopeElementID).find(":input[name='" + targetElementName + "']").val();

return currentElementValue <= targetElement;

},

message: '{2}'

}

});

★、文本域(easyui-textbox easyui-validatebox


验证重点

1、注明 validtype="length[0, 400]" 即可。

详细阐述

文本域不需要使用 <textarea />来表达,在 easyUI 层面上其定义仍然是 textbox,只是 multiline:true 罢了。

同时指定两个类就可以:easyui-textboxeasyui-validatebox

<tr>

<th>

<label>备注:</label>

</th>

<td colspan="3">

<input class="easyui-textbox easyui-validatebox"

validtype="length[0, 400]" data-options="multiline:true"

style="width: 520px; height: 60px;" name="Notes" />

</td>

</tr>

★、下拉框(easyui-combobox


验证重点

1、在页面的脚本中加入验证扩展 SelectionRequired

2、在下拉框元素中加入 validtype 属性,数组参数为其自身 id 和 验证消息 。

validtype="SelectionRequired['ddlOperatorPreAssign', '请选择一项']"

详细阐述

下拉框有时总会包括一个默认项,有时则没有。

它也支持 必填 验证,往往还需要在数据加载成功时默认选中第一项。

比如在初始化时,可以很容易地取得数据,判断起来也方便:

<tr>

<th>

<label>录入员:</label>

</th>

<td colspan="3">

<input class="easyui-combobox" name="Operator" id="ddlOperatorPreAssign"

editable="false"

validtype="SelectionRequired['ddlOperatorPreAssign', '请选择一项']"

data-options="novalidate:true, valueField:'Name', textField:'FullName',

url:'/PMIS/PMIS_EnteringTasks_Assignment/GetUserInCurrentDept',

onLoadSuccess: function(data){

if (data) {

$(this).combobox('setValue',data[0].Name);

}

}

">

</td>

</tr>

$.extend($.fn.validatebox.defaults.rules, {

// 下拉框验证

SelectionRequired: {

validator: function(currentElementText, param) {

// 对于下拉框,验证组件只能默认获取其文本值,需要自己重新提取其 Value。

if(!$.isArray(param)) {

window.alert("调用验证器时所传参数必须是数组格式:validtype=\"SelectionRequired['ddlOperatorPreAssign', '提示信息']\" ");

return false;

}

var targetElement = $("#" + param[0]);

var targetElementValue = targetElement.combobox('getValue');

console.group("开始验证下拉框");

console.info("该验证是确保下拉框的选项值(Value)不是 null 对象、不是 \"0\"、也不是 \"\" ");

console.info("下拉框元素 id = " + param[0]);

console.info("当前选中项 value = " + targetElementValue);

console.info("当前选中项 value 的类型是 " + typeof targetElementValue);

console.info("当前选中项 text = " + currentElementText);

console.info("当前选中项 text 的类型是 " + typeof currentElementText);

if(targetElementValue != null && targetElementValue != "0" && targetElementValue != "") {

console.info("验证成功");

console.groupEnd();

return true;

}

console.warn("验证失败");

console.groupEnd();

},

message: '{1}'

}

});

针对下拉框值得注意的一点,不要使用表单的 clear() 方法,这样会使得下拉框的值成本空白,应使用表单的 reset() 方法。

【开发】Form Validate 表单验证 扩展应用的更多相关文章

  1. 基于jQuery的Validate表单验证

    表单验证可以说在前端开发工作中是无处不在的~ 有数据,有登录,有表单, 都需要前端验证~~  而我工作中用到最多的就是基于基于jQuery的Validate表单验证~  就向下面这样~ 因为今天有个朋 ...

  2. ASP.NET MVC Jquery Validate 表单验证的多种方式

    在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体验也会得到很大的提升.在开发过程中我们可以不借助 JS 库,自己去手写 JS ...

  3. 【干货】Laravel --Validate (表单验证) 使用实例

    前言 : Laravel 提供了多种方法来验证应用输入数据.默认情况下,Laravel 的控制器基类使用ValidatesRequests trait,该trait提供了便利的方法通过各种功能强大的验 ...

  4. [转]ASP.NET MVC Jquery Validate 表单验证的多种方式介绍

    在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体验也会得到很大的提升.在开发过程中我们可以不借助 JS 库,自己去手写 JS ...

  5. Jquery Validate 表单验证的多种方式

    ASP.NET MVC Jquery Validate 表单验证的多种方式 在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体 ...

  6. thinkphp图片上传+validate表单验证+图片木马检测+缩略图生成

    目录 1.案例 1.1图片上传  1.2进行图片木马检测   1.3缩略图生成   1.4控制器中调用缩略图生成方法 1.案例 前言:在thinkphp框架的Thinkphp/Library/Thin ...

  7. jQuery-easyui和validate表单验证实例

    jQuery EasyUI 表单 - 表单验证插件validatebox 使用时需要向页面引入两个css文件如下: <link rel="stylesheet" href=& ...

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

    1.使用summernote富文本编辑器提交图片到服务器 在使用bootstrap中,我们用到了summernote富文本编辑器,使用summernote将图片上传到服务器中,参考我的上篇文章http ...

  9. validate表单验证-单独验证

    今天编写一个表单验证程序,我来说一下今天遇到的坑:程序不是通过submit按钮提交验证的,是在自己写的一个方法中提交的,出现了表单无法验证的情况.然后我就了解了一下jquery validate的验证 ...

随机推荐

  1. ulua学习笔记(二):官方资料及问题解决方案

    uLua&SimpleFramework入门视频教程网盘地址 视频教程地址 http://pan.baidu.com/s/1gd8fG4N游戏框架地址 https://github.com/j ...

  2. WEB- 冻结TABLE的头和列

    没认真去研究是怎么实现的,看到效果,心里觉的很牛,备注在这里 转载自:http://www.cnblogs.com/Microshaoft/archive/2011/08/10/2133434.htm ...

  3. Css基础-派生选择器

    如果要修改li strong 里面文字的颜色可以这样写样式 派生选择器: li strong { color:red; } 效果:

  4. CSDN首页> 移动开发 直接拿来用!最火的Android开源项目(完结篇)

    此前,CSDN移动频道推出的GitHub平台上“最受欢迎的开源项目”系列文章引发了许多读者的热议,在“直接拿来用!最火的Android开源项目”系列文章(一).(二)中,我们也相继盘点了40个GitH ...

  5. JQuery.Ajax之错误调试帮助信息介绍

    下面是Jquery中AJAX参数详细列表: timeout Number 设置请求超时时间(毫秒).此设置将覆盖全局设置. async Boolean (默认: true) 默认设置下,所有请求均为异 ...

  6. Thread学习

    1.定义 2.作用 3.和进程的比较 4.多线程(multithreading)的优点和缺陷 5.调度(scheduling) 6.线程相关概念 定义 线程就是最小的可编程指令序列,是进程的子集.一个 ...

  7. Files to be needed by importing the android application with eclipse

    1. AndroidManifest.xml 2. project.properties # This file is automatically generated by Android Tools ...

  8. File类的基本操作之读出所有目录路径

    package org.mark.file; import java.io.File; /** * File类的基本操作之读出所有文件夹路径 * 假设给定一个文件夹,要求将此文件夹中的所有文件都列出来 ...

  9. nginx学习七 高级数据结构之动态数组ngx_array_t

    1 ngx_array_t结构 ngx_array_t是nginx内部使用的数组结构.nginx的数组结构在存储上与大家认知的C语言内置的数组有相似性.比方实际上存储数据的区域也是一大块连续的内存. ...

  10. [WebGL入门]二,開始WebGL之前,先了解一下canvas

    年2月)HTML5依旧处于草案阶段. HTML5支持网页端的多媒体功能和画布功能,追加了非常多全新的更合理的Tag标签.各个浏览器也都在逐渐的完好这些新的特性. Canvas对象表示一个 HTML画布 ...