问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

validation 的js是做什么用的

发布网友 发布时间:2022-04-26 11:41

我来回答

1个回答

热心网友 时间:2022-04-20 02:42

jQuery.validationEngine plugin是一个旨在校验表单元素的javascript插件。目前在IE6-8、Chrome、Firefox、Safari、Opera等浏览器上表现良好。比如校验我们常见的Email、phone、URL等等,对于负责的Ajax调用校验也提供了支持。而且提示信息也可支持多种语言。现在已经发展到了v2.6.2我们可以在github上很轻松的获取到它的源码。
一下是自己写的一个小例子:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery.validationEngine plugin Demo</title>
<link type="text/css"rel="stylesheet"href="/static/css/jquery.validation/validationEngine.jquery.css"/>
<script type="text/javascript"src="/static/js/jquery/jquery-1.9.1.min.js"></script>
<script type="text/javascript"src="/static/js/jquery.validation/jquery.validationEngine-zh_CN.js"></script>
<script type="text/javascript"src="/static/js/jquery.validation/jquery.validationEngine.js"></script>
<script type="text/javascript">

$(function(){

var form ="myForm";

var condition = [

{name:"username",rule:"validate[required,maxSize[5]]"} ,

{name:"password",rule:"validate[required] text-input"} ,

{name:"url",rule:"validate[required,custom[url]]"},

{name:"letter",rule:"validate[required,custom[onlyLetterNumber]]"},

{name:"date",rule:"validate[required,custom[date]]"}

];

validationInit(condition,form);

$("#sub").click(function(){

console.log("validationform="+$("#"+form).validationEngine('validate'));

if($("#"+form).validationEngine()){

return;

}

myForm.submit();

});

});

function validationInit(condition,form){

for(var i = 0; i < condition.length; i++){

var cond = condition[i];

$("#"+form+"[name="+cond.name+"]").attr("class",cond.rule);

}

$("#"+form).validationEngine('attach',{

}).css({border:"2px solid #000"});

}
</script>
</head>
<body>
<div style="padding-top: 100px">

<form action=""id="myForm"name="myForm"method="post">

username:<input type="text"name="username"id="username"/><br/>

password:<input type="text"name="password"id="password"data-prompt-position="bottomLeft:20px"/><br/>

url:<input type="text"id="url"name="url"value="http://"/><br/>

only letter:<input type="text"id="letter"name="letter"value="too many spaces obviously"/><br/>

date:<input type="text"id="date"name="date"value=""/><br/>

<input type="button"value="提交"id="sub"/>

</form>
</div>
</body>
</html>
可以看出使用了jquery.validationEngine plugin之后页面的校验js代码变得更加整洁了。

除了上述用法,jquery.validationEngine也可以作用在某个表单元素上

$("#form.id").validationEngine();

$("#form.id").validationEngine(action or options);
validationEngine的几个基本action:

attach:绑定表单验证
detach:解除表单验证
validate:验证控件或表单 返回ture or false
showPrompt:在某个元素上创建一个提示,3中状态‘pass’,‘error’,'load'
hide:隐藏对应元素及元素内的提示信息
hideAll:隐藏页面上的所有提示
updatePromptsPosition:更新提示层的位置

$("#"+form).validationEngine('attach',{

}).css({border:"2px solid #000"});
可以看出validationEngine方法支持链式调用。

validationEngine的3中自定义事件
jqv.form.validating:$("#form").bind("jqv.form.validating",function(event){});表单验证时事件
jqv.form.result:$("#form").bind("jqv.form.result",function(event,errorFound){});表单验证完成时事件 errorFound:表单验证不通过(true或false)
jqv.field.result:$("#form").bind("jqv.field.result",function(event,field,isError,promptText){});单个控件验证完成时事件,field 控件对象,isError:控件验证不通过(true或false)promptText: 提示信息
HTML5属性
属性名 描述
data-validation-engine 设置验证规则,除了class验证的另一种选择
data-validation-placeholder 占位符 当为必填控件验证时值不能为空 也不能为占位符
data-prompt-position 自定义提示信息的位置,可设置为:"topRight","topLeft","bottomRight""bottomLeft","centerRight","centerLeft","inline"可设置更具体的位置,格式为:"方向:X偏移值,Y偏移值"。如:data-prompt-position="bottomLeft:20,5"PS:偏移值可以为负数
data-prompt-target 载入提示信息的容器,值为元素的id 仅在promptPosition或data-prompt-position设置为”inline“时有效

jquery.validationEngine默认属性值

// LEAK GLOBAL OPTIONS

$.validationEngine= {fieldIdCounter: 0,defaults:{

// 触发控件校验的事件名称

validationEventTrigger:"blur",

// 自动滚动视窗到第一个错误位置

scroll: true,

// 为第一个input框聚焦

focusFirstField:true,

// 是否提示信息

showPrompts: true,

// 是否验证不可见元素(如type="hidden"的输入框)

validateNonVisibleFields: false,

// 用特殊class属性值 来忽略校验控件

ignoreFieldsWithClass: 'ignoreMe',

// Opening box position, possible locations are: topLeft,

// topRight, bottomLeft, centerRight, bottomRight, inline

// inline gets inserted after the validated field or into an element specified in data-prompt-target
//提示信息的位置设定

promptPosition:"topRight",

bindMethod:"bind",

// internal, automatically set to true when it parse a _ajax rule

inlineAjax: false,

// if set to true, the form data is sent asynchronously via ajax to the form.action url (get)
//是否使用Ajax提交表单 默认是get方式

ajaxFormValidation: false,

// The url to send the submit ajax validation (default to action) //设置Ajax提交的url 默认为form的action

ajaxFormValidationURL: false,

// HTTP method used for ajax validation
//设置Ajax表单提交时使用的数据传输方式

ajaxFormValidationMethod: 'get',

// Ajax form validation callback method: boolean onComplete(form, status, errors, options)

// retuns false if the form.submit event needs to be canceled.
//表单提交,Ajax验证完成后的行为

onAjaxFormComplete: $.noop,

// called right before the ajax call, may return false to cancel //表单提交验证通过后 Ajax提交之前的回调函数

onBeforeAjaxFormValidation: $.noop,

// Stops form from submitting and execute function assiciated with it

onValidationComplete: false,

// Used when you have a form fields too close and the errors messages are on top of other disturbing viewing messages

doNotShowAllErrosOnSubmit: false,

// Object where you store custom messages to override the default error messages

custom_error_messages:{},

// true if you want to validate the input fields on blur event

binded: true,

// set to true if you want to validate the input fields on blur only if the field it's not empty

notEmpty: false,

// set to true, when the prompt arrow needs to be displayed

showArrow: true,

// set to false, determines if the prompt arrow should be displayed when validating

// checkboxes and radio buttons

showArrowOnRadioAndCheckbox: false,

// did one of the validation fail ? kept global to stop further ajax validations

isError: false,

// Limit how many displayed errors a field can have

maxErrorsPerField: false,

// Caches field validation status, typically only bad status are created.

// the array is used ring ajax form validation to detect issues early and prevent an expensive submit

ajaxValidCache: {},

// Auto update prompt position after window resize

autoPositionUpdate: false,

InvalidFields: [],

onFieldSuccess: false,

onFieldFailure: false,

onSuccess: false,

onFailure: false,

validateAttribute:"class",

addSuccessCssClassToField:"",

addFailureCssClassToField:"",

// Auto-hide prompt

autoHidePrompt: false,

// Delay before auto-hide

autoHideDelay: 10000,

// Fade out ration while hiding the validations

fadeDuration: 0.3,

// Use Prettify select library

prettySelect: false,

// Add css class on prompt

addPromptClass :"",

// Custom ID uses prefix

usePrefix:"",

// Custom ID uses suffix

useSuffix:"",

// Only show one message per error prompt

showOneMessage: false
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有哪些营养价值丰富的香蕉牛奶可以推荐? 什么牌子的香蕉牛奶最好喝? 有哪些营养好喝的香蕉牛奶推荐? 挑选香蕉牛奶有哪些需要注意的? 怎样挑选好喝的香蕉牛奶? 怎样挑选口感不错的香蕉牛奶? 如何辨别香蕉牛奶的品质? 马来西亚理科大学留学优势及申请要求 车天窗关不上有什么办法 车子天窗关不上怎么办 50部必读的投资经典图书目录 spring MVC 使用validation验证无效果 form_validation中的set_value只有设置了set_rules才有效吗? 如何利用机器学习推荐与热门话题相关的新闻 caffe支持多GPU吗,test,不是指train 用JS如何验证输入必须是字母或数字? 肚子胀的不舒服,该怎么办? 肚子经常的不舒服,经常胀气,是怎么回事啊?该怎么治疗或者保养啊? BP神经网络怎么补画训练误差曲线? 如何构建训练集和测试集 成什么比例 肚子长期出现胀气,警惕哪个病症,别不当回事? 为什么肚子会经常胀气 机器学习中训练集、验证集、测试集的定义和作用到底是什么样的? 感觉肚子不舒服,老是有胀气下不去,是怎么回事。 validation set,什么意思 我的肚子总是胀气,胀的很不舒服,什么原因? 肚子胀气怎么办?经常肚子不舒服! 肚子总是胀胀的不舒服? 肚子经常胀气怎么办? 肚子胀不舒服怎么回事? 肚子经常胀气应该怎么办? 用VBA的Validation.add方法设置日期下拉列表后日期格式有误 validation_errors()不显示表单错误内容,请问怎么解决 (J2EE)Struts 2里的Validation对类型错误拦不住? 今天开机任务栏里多了这么个东西validation lncomplete 请问无线路由器与台式电脑怎么连接? 如何洗衣服可以有效防止缩水? 怎么洗可以让衣服不缩水? 怎么让新衣服不缩水? 怎样洗涤毛衣能防止缩水? 有什么方法防止衣服缩水?? 为什么ipad检查更新一直卡在正在检查更新 考的函授的本科证,没有学位证对于以后找工作有什么影响嘛 我只有函授本科,没有学位证,能在2016年考在职研究生吗 我是函授本科,但是没拿到学位证,按什么学历报考? 函授本科没有学位证学历还是本科吗 函授本科毕业后拿了毕业证 没考学位证 能补考或有其他补救措施吗? 函授本科毕业没有学士学位可以考研吗? 函授本科毕业证书有了但是没有学士学位,这个学历有用吗? 函授本科学历,没有学位,能读在职研究生吗 本科补学位如何进行 函授本科能不能补学位