ホームページ ウェブフロントエンド jsチュートリアル jquery.validate カスタム検証メソッドと関連パラメータの検証_jquery

jquery.validate カスタム検証メソッドと関連パラメータの検証_jquery

May 16, 2016 pm 03:19 PM

Jquery Validate 関連パラメータ

//定义中文消息
var cnmsg = {
required: “必选字段”,
remote: “请修正该字段”,
email: “请输入正确格式的电子邮件”,
url: “请输入合法的网址”,
date: “请输入合法的日期”,
dateISO: “请输入合法的日期 (ISO).”,
number: “请输入合法的数字”,
digits: “只能输入整数”,
creditcard: “请输入合法的信用卡号”,
equalTo: “请再次输入相同的值”,
accept: “请输入拥有合法后缀名的字符串”,
maxlength: jQuery.format(“请输入一个长度最多是 {0} 的字符串”),
minlength: jQuery.format(“请输入一个长度最少是 {0} 的字符串”),
rangelength: jQuery.format(“请输入一个长度介于 {0} 和 {1} 之间的字符串”),
range: jQuery.format(“请输入一个介于 {0} 和 {1} 之间的值”),
max: jQuery.format(“请输入一个最大为 {0} 的值”),
min: jQuery.format(“请输入一个最小为 {0} 的值”)
};
jQuery.extend(jQuery.validator.messages, cnmsg);
ログイン後にコピー

カスタム検証を検証する

$(document).ready( function() {
/**
* 身份证号码验证
*
*/
function isIdCardNo(num) {
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var parityBit=new Array("1","0","X","9","8","7","6","5","4","3","2");
var varArray = new Array();
var intValue;
var lngProduct = 0;
var intCheckDigit;
var intStrLen = num.length;
var idNumber = num;
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
return false;
}
// check and set value
for(i=0;i<intStrLen;i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
return false;
} else if (i < 17) {
varArray[i] = varArray[i] * factorArr[i];
}
}
if (intStrLen == 18) {
//check date
var date8 = idNumber.substring(6,14);
if (isDate8(date8) == false) {
return false;
}
// calculate the sum of the products
for(i=0;i<17;i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = parityBit[lngProduct % 11];
// check last digit
if (varArray[17] != intCheckDigit) {
return false;
}
}
else{ //length is 15
//check date
var date6 = idNumber.substring(6,12);
if (isDate6(date6) == false) {
return false;
}
}
return true;
}
/**
* 判断是否为“YYYYMM”式的时期
*
*/
function isDate6(sDate) {
if(!/^[0-9]{6}$/.test(sDate)) {
return false;
}
var year, month, day;
year = sDate.substring(0, 4);
month = sDate.substring(4, 6);
if (year < 1700 || year > 2500) return false
if (month < 1 || month > 12) return false
return true
}
/**
* 判断是否为“YYYYMMDD”式的时期
*
*/
function isDate8(sDate) {
if(!/^[0-9]{8}$/.test(sDate)) {
return false;
}
var year, month, day;
year = sDate.substring(0, 4);
month = sDate.substring(4, 6);
day = sDate.substring(6, 8);
var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
if (year < 1700 || year > 2500) return false
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
if (month < 1 || month > 12) return false
if (day < 1 || day > iaMonthDays[month - 1]) return false
return true
}
// 身份证号码验证 
jQuery.validator.addMethod("idcardno", function(value, element) {
return this.optional(element) || isIdCardNo(value); 
}, "请正确输入身份证号码");
//字母数字
jQuery.validator.addMethod("alnum", function(value, element) {
return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value);
}, "只能包括英文字母和数字");
// 邮政编码验证
jQuery.validator.addMethod("zipcode", function(value, element) {
var tel = /^[0-9]{6}$/;
return this.optional(element) || (tel.test(value));
}, "请正确填写邮政编码");
// 汉字
jQuery.validator.addMethod("chcharacter", function(value, element) {
var tel = /^[\u4e00-\u9fa5]+$/;
return this.optional(element) || (tel.test(value));
}, "请输入汉字");
// 字符最小长度验证(一个中文字符长度为2)
jQuery.validator.addMethod("stringMinLength", function(value, element, param) {
var length = value.length;
for ( var i = 0; i < value.length; i++) {
if (value.charCodeAt(i) > 127) {
length++;
}
}
return this.optional(element) || (length >= param);
}, $.validator.format("长度不能小于{0}!"));
// 字符最大长度验证(一个中文字符长度为2)
jQuery.validator.addMethod("stringMaxLength", function(value, element, param) {
var length = value.length;
for ( var i = 0; i < value.length; i++) {
if (value.charCodeAt(i) > 127) {
length++;
}
}
return this.optional(element) || (length <= param);
}, $.validator.format("长度不能大于{0}!"));
// 字符验证
jQuery.validator.addMethod("string", function(value, element) {
return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);
}, "不允许包含特殊符号!");
// 手机号码验证
jQuery.validator.addMethod("mobile", function(value, element) {
var length = value.length;
return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/.test(value));
}, "手机号码格式错误!");
// 电话号码验证
jQuery.validator.addMethod("phone", function(value, element) {
var tel = /^(\d{3,4}-&#63;)&#63;\d{7,9}$/g;
return this.optional(element) || (tel.test(value));
}, "电话号码格式错误!");
// 邮政编码验证
jQuery.validator.addMethod("zipCode", function(value, element) {
var tel = /^[0-9]{6}$/;
return this.optional(element) || (tel.test(value));
}, "邮政编码格式错误!");
// 必须以特定字符串开头验证
jQuery.validator.addMethod("begin", function(value, element, param) {
var begin = new RegExp("^" + param);
return this.optional(element) || (begin.test(value));
}, $.validator.format("必须以 {0} 开头!"));
// 验证两次输入值是否不相同
jQuery.validator.addMethod("notEqualTo", function(value, element, param) {
return value != $(param).val();
}, $.validator.format("两次输入不能相同!"));
// 验证值不允许与特定值等于
jQuery.validator.addMethod("notEqual", function(value, element, param) {
return value != param;
}, $.validator.format("输入值不允许为{0}!"));
// 验证值必须大于特定值(不能等于)
jQuery.validator.addMethod("gt", function(value, element, param) {
return value > param;
}, $.validator.format("输入值必须大于{0}!"));
// 验证值小数位数不能超过两位
jQuery.validator.addMethod("decimal", function(value, element) {
var decimal = /^-&#63;\d+(\.\d{1,2})&#63;$/;
return this.optional(element) || (decimal.test(value));
ログイン後にコピー

jQuery.validate の使用法

2010年4月12日月曜日 14:33

名前 戻り値の型 説明

validate(options) の戻り値: 選択された FORM

を検証するバリデータ

valid() の戻り値: 検証に合格したかどうかを確認するためのブール値

rules() は以下を返します。 オプション 要素の検証ルールを返します

rules(add,rules) の戻り値: 検証ルールを追加するオプション

ルール(削除,ルール)

jquery.validate は、jquery に基づいた非常に優れた検証フレームワークであり、それを通じていくつかの一般的な入力を迅速に検証でき、独自の検証メソッドを拡張することもできます。また、国際化に対する非常に優れたサポートも備えています。

jquery.validate 公式ウェブサイト: http://bassistance.de/jquery-plugins/jquery-plugin-validation/

使用法:

1. まず jquery.js と jquery.validate.js をダウンロードし、js ファイルをインポートします (注: jquery は jquery.validate.js の前に導入する必要があります。そうしないとエラーが報告されます)

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.validate.js"></script>
ログイン後にコピー

2. 検証が必要なフォームコードを記述し、検証コードを記述します(検証コードの記述方法は2通りあります。最初は通常の方法を使用します)

var validator = $("formId").validate({// #formId为需要进行验证的表单ID
errorElement :"div",// 使用"div"标签标记错误, 默认:"label"
wrapper:"li",// 使用"li"标签再把上边的errorELement包起来
errorClass :"validate-error",// 错误提示的css类名"error"
onsubmit:true,// 是否在提交是验证,默认:true
onfocusout:true,// 是否在获取焦点时验证,默认:true
onkeyup :true,// 是否在敲击键盘时验证,默认:true
onclick:false,// 是否在鼠标点击时验证(一般验证checkbox,radiobox)
focusCleanup:false,// 当未通过验证的元素获得焦点时,并移除错误提示
rules: {
loginName: {// 需要进行验证的输入框name
required: true// 验证条件:必填
},
loginPassword: {// 需要进行验证的输入框name
required: true,// 验证条件:必填
minlength: 5// 验证条件:最小长度为5
},
email: {// 需要进行验证的输入框name
required: true,// 验证条件:必填
email: true// 验证条件:格式为email
}
},
messages: {
loginName: {
required: "用户名不允许为空!"// 验证未通过的消息
},
loginPassword: {
required: "密码不允许为空!",
minlength: jQuery.format("密码至少输入 {0} 字符!")
},
email: {
required: "email不允许为空",
email: "邮件地址格式错误!"
}
}
ログイン後にコピー

2. 検証にメタ String メソッドを使用します。つまり、コンテンツを検証してクラスに書き込みます (メタ String メソッドには jquery.metadata.js ファイルの導入が必要であることに注意してください)

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.metadata.js"></script>
<script type="text/javascript" src="jquery.validate.js"></script>
<form id="validate" action="admin/transfer!save.action" method="post">
<input type="text" class="required" name="entity.name" />
<input type="text" class="email" name="entity.email" />
<input type="submit" class="button" value="提 交" />
</form>
<script type="text/javascript">
$(document).ready(
function() {
$("#formId").validate({// #formId为需要进行验证的表单ID
meta :"validate"// 采用meta String方式进行验证(验证内容与写入class中)
errorElement :"div",// 使用"div"标签标记错误, 默认:"label"
wrapper:"li",// 使用"li"标签再把上边的errorELement包起来
errorClass :"validate-error",// 错误提示的css类名"error"
onsubmit:true,// 是否在提交是验证,默认:true
onfocusout:true,// 是否在获取焦点时验证,默认:true
onkeyup :true,// 是否在敲击键盘时验证,默认:true
onclick:false,// 是否在鼠标点击时验证(一般验证checkbox,radiobox)
focusCleanup:false,// 当未通过验证的元素获得焦点时,并移除错误提示
});
})
</script>
ログイン後にコピー

注: Struts2 アプリケーションでは、name="entity.name" の形式の入力フォームが頻繁に表示されます (つまり、名前にカンマまたはその他の特殊記号が含まれている場合)。上記の名前を引用符で囲むことができます ( "") 以上です。

rules: {
"entity.loginName": {// 需要进行验证的输入框name
required: true// 验证条件:必填
}
},
messages: {
"entity.loginName": {
required: "用户名不允许为空!"// 验证未通过的消息
}
}

ログイン後にコピー

Java テクノロジーに関する問題について一緒に議論することを歓迎します。happyczx@126.com までメールをお送りください。

上記のコードの一部は、payj オープンソース決済システムからのものです。この Java オープンソース プロジェクトには、Struts2 Spring Hibernate jquery やその他のフレームワークの優れたアプリケーション ソース コードが多数含まれており、一見の価値があります。まずはここをオススメしたいと思います(笑)。 。 。

ps: Jquery Validate 検証ルール

(1)必須:必須フィールド
(2)remote:”check.php” ajaxメソッドを使用してcheck.phpを呼び出し、入力値を確認します
(3)email:true 正しい形式で電子メールを入力する必要があります
(4)url:true URL を正しい形式で入力する必要があります
(5)date:true 日付を正しい形式で入力する必要があります
(6)dateISO:true 日付 (ISO) を正しい形式で入力する必要があります。例: 2009-06-23、1998/01/22 形式のみが検証され、有効性は検証されません
(7)number:true 有効な数値 (負の数、10 進数) を入力する必要があります
(8)digits:true は整数を入力する必要があります
(9)creditcard: 法的なクレジット カード番号を入力する必要があります
(10)equalTo:”#field” 入力値は #field
と同じである必要があります (11)accept: 有効なサフィックス (アップロードされたファイルのサフィックス) を含む文字列を入力します
(12)maxlength:5 最大長5の文字列を入力してください(漢字も1文字と数えます)
(13)minlength:10 最小長が 10 の文字列を入力します (漢字は 1 文字としてカウントされます)
(14)rangelength:[5,10] 入力長は 5 ~ 10 インチである必要があります (漢字は 1 文字としてカウントされます)
(15)range:[5,10] 入力値は 5 ~ 10 でなければなりません
(16)max:5 入力値は 5 を超えることはできません
(17)min:10 入力値は 10 未満にすることはできません

Jquery Validate submit submit

submitHandler: 検証に合格した後に実行される関数には、フォーム送信関数が含まれている必要があります。そうでない場合、フォームは送信されません
$(".selector").validate({ submitHandler:function(form) { $(form).ajaxSubmit(); //Jquery Form 関数を使用する } })

Jquery Validate エラー エラー プロンプト dom

.errorPlacement: コールバック デフォルト: 検証された要素
の後にエラーメッセージを置きます エラーが配置される場所を指定します。デフォルトは次のとおりです: error.appendTo(element.parent()); つまり、エラー メッセージは検証された要素
の後ろに配置されます。

errorPlacement: function(error, element) {
error.appendTo(element.parent());
}
ログイン後にコピー

エラー プロンプトのスタイルを設定します。次のようなアイコン表示を追加できます。

input.error { border: 1px solid red; }
label.error {
background:url(“./demo/images/unchecked.gif”) no-repeat 0px 0px;
padding-left: 16px;
padding-bottom: 2px;
font-weight: bold;
color: #EA5200;
}
ログイン後にコピー

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? 独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? Mar 18, 2025 pm 03:12 PM

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? Mar 18, 2025 pm 03:14 PM

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

jQueryマトリックス効果 jQueryマトリックス効果 Mar 10, 2025 am 12:52 AM

マトリックスの映画効果をあなたのページにもたらしましょう!これは、有名な映画「The Matrix」に基づいたクールなJQueryプラグインです。プラグインは、映画の古典的な緑色のキャラクター効果をシミュレートし、画像を選択するだけで、プラグインはそれを数値文字で満たされたマトリックススタイルの画像に変換します。来て、それを試してみてください、それはとても面白いです! それがどのように機能するか プラグインは画像をキャンバスにロードし、ピクセルと色の値を読み取ります。 data = ctx.getimagedata(x、y、settings.greasize、settings.greasize).data プラグインは、写真の長方形の領域を巧みに読み取り、jQueryを使用して各領域の平均色を計算します。次に、使用します

ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:16 PM

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

シンプルなjQueryスライダーを構築する方法 シンプルなjQueryスライダーを構築する方法 Mar 11, 2025 am 12:19 AM

この記事では、jQueryライブラリを使用してシンプルな画像カルーセルを作成するように導きます。 jQuery上に構築されたBXSLiderライブラリを使用し、カルーセルをセットアップするために多くの構成オプションを提供します。 今日、絵のカルーセルはウェブサイトで必須の機能になっています - 1つの写真は千の言葉よりも優れています! 画像カルーセルを使用することを決定した後、次の質問はそれを作成する方法です。まず、高品質の高解像度の写真を収集する必要があります。 次に、HTMLとJavaScriptコードを使用して画像カルーセルを作成する必要があります。ウェブ上には、さまざまな方法でカルーセルを作成するのに役立つ多くのライブラリがあります。オープンソースBXSLiderライブラリを使用します。 BXSLiderライブラリはレスポンシブデザインをサポートしているため、このライブラリで構築されたカルーセルは任意のものに適合させることができます

JavaScriptによる構造マークアップの強化 JavaScriptによる構造マークアップの強化 Mar 10, 2025 am 12:18 AM

キーポイントJavaScriptを使用した構造的なタグ付けの強化は、ファイルサイズを削減しながら、Webページコンテンツのアクセシビリティと保守性を大幅に向上させることができます。 JavaScriptを効果的に使用して、Cite属性を使用して参照リンクを自動的にブロック参照に挿入するなど、HTML要素に機能を動的に追加できます。 JavaScriptを構造化されたタグと統合することで、ページの更新を必要としないタブパネルなどの動的なユーザーインターフェイスを作成できます。 JavaScriptの強化がWebページの基本的な機能を妨げないようにすることが重要です。 高度なJavaScriptテクノロジーを使用できます(

Angularを使用してCSVファイルをアップロードおよびダウンロードする方法 Angularを使用してCSVファイルをアップロードおよびダウンロードする方法 Mar 10, 2025 am 01:01 AM

データセットは、APIモデルとさまざまなビジネスプロセスの構築に非常に不可欠です。これが、CSVのインポートとエクスポートが頻繁に必要な機能である理由です。このチュートリアルでは、Angular内でCSVファイルをダウンロードおよびインポートする方法を学びます

See all articles