jQuery.validationEngineプラグインの使用
9464 ワード
jQuery.validationEngine pluginは、フォーム要素を検証するためのjavascriptプラグインです.現在、IE 6-8、Chrome、Firefox、Safari、Operaなどのブラウザで良好に機能している.例えば、私たちがよく見ているEmail、phone、URLなどを検証することは、担当するAjax呼び出し検証にもサポートされています.また、ヒント情報は複数の言語をサポートすることもできます.今ではv 2に発展しています.6.2 githubでソースコードを簡単に入手できます.
以下は自分で書いた小さな例です.
上記の用法を除いてjquery.validationEngineはフォーム要素にも使用できます
attach:バインドフォーム検証 detach:フォーム検証を解除 validate:検証コントロールまたはフォームはture or false を返します. showPrompt:ある要素にヒントを作成します.3のステータスは「pass」、「error」、「load」 です. hide:対応する要素および要素内のヒント情報 を非表示にする. hideAll:非表示ページのすべてのヒント updatePromptsPosition:更新プロンプト層の位置 から
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:ヒント情報 HTML 5属性
属性名
説明
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デフォルト属性値
以下は自分で書いた小さな例です.
<!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:$("#"+form).validationEngine('attach',{
}).css({border:"2px solid #000"});
では、validationEngineメソッドがチェーン呼び出しをサポートしていることがわかります.validationEngineの3つのカスタムイベント
属性名
説明
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
}};