如题所述
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 during 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 duration 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
ä¸ä¸æ¯èªå·±åçä¸ä¸ªå°ä¾åï¼
<!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 during 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 duration 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
温馨提示:答案为网友推荐,仅供参考