ホームページ ウェブフロントエンド jsチュートリアル Forms_JavaScript スキルを検出するためのカプセル化された汎用メソッド

Forms_JavaScript スキルを検出するためのカプセル化された汎用メソッド

May 16, 2016 pm 04:18 PM
カプセル化 検出 形状

フォームを空にすることはできない (.notnull) ことの検証を検出します

機能: 送信する必要がある一対の form タグの下に複数 (1 つを含む) のフォームがある場合、js を使用して現在のボタンとそれらの要素を正確に判断します

使用法: form タグの下で現在のフォームのコンテナを見つけて、それに class="form" を指定します。現在のフォームの送信ボタンには class="check"
が指定されます。 空であることを確認する必要がある要素には class="notnull" nullmsg="xx を空にすることはできません!" というプロンプトが与えられ、論理的な判断が必要なフォームには class="need"
が与えられます。 判定タイプは class="num" (数字のみ可能) 検証プロンプトロジックmsg="XX は数字のみ可能"

が与えられます。

エラー メッセージ ブロックを表示するには class="errorMessage" を指定します
エラーメッセージを表示するには class="warn" を指定します
js オブジェクト指向プログラミングを使用しない
論理的な判断。必要な識別子を渡さず、正規表現属性 (カスタム) regex="/^d$/" を直接与えて判断します

外部実装
Global.submitCallback ボタンのコールバック関数
Global.confirmCallback 確認コールバック関数;
改善の余地がある領域:
なし

コードをコピー コードは次のとおりです:

///
*/
//$(ドキュメント).ready(
// 関数 () {
// $("form").find(".notnull").bind({
// focus: function () {
// if ($(this).attr("value") == this.defaultValue) {
// $(this).attr("value", "");
// }
// },
// ブラー: function () {
// if ($(this).attr("value") == "") {
// $(this).attr("value", this.defaultValue);
// }
// }
// });
// }
//);
///*ユニバーサル検出フォームをカプセル化するメソッド*/
///event.srcElement: イベントをトリガーするターゲット オブジェクト。onclick イベントによく使用されます。
///event.fromElement: イベントをトリガーするオブジェクト ソース。onmouseout および onmouseover イベントによく使用されます。
///event.toElement: イベントがトリガーされた後にマウスが移動するターゲット ソースは、onmouseout イベントと onmouseover イベントでよく使用されます。
関数 Global() {
var _self = this;
}
Global.submitCallback = null;
Global.confirmCallback = null;
$(document).ready(function () {
//ボディを形成する
$("body").find(".form").each(function () {
This.onclick = 関数 (e) {
var button = null;
{
をお試しください ボタン = e.srcElement == null document.activeElement : e.srcElement;
} catch (e) {
console.log(e.message)
ボタン = document.activeElement;
}
If ($(button).is(".check")) {
//alert("送信")
var sub = (checkform(this) && CheckInputRex(this) && checkselect(this) && checkChecked(this));
if (サブ) {
// コールバックを呼び出しますが、独自のインスタンスをコンテキストとして使用します
Global.submitCallback.call(this, [e]);
}
return sub;
} else if ($(button).is(".confirm")) {
//alert("削除")
var sub =confirm($(button).attr("title"));
if (サブ) {
Global.confirmCallback.call(this, [e]);
}
return sub;
} else {
                                                                                                                                                                                                                           ​  return true;
}
}
});
/*フォーム内で空にできない要素を検出します*/
関数 checkform(フォーム) {
var b = true;
$(form).find(".notnull").each(function () {
If ($.trim($(this).val()).length を通して // // //alert($(this).attr("msg"))
$(this).parents(".form").find(".warn").text($(this).attr("nullmsg"));
$(this).parents(".form").find(".errorMessage").show();
$(this).select();
$(this).focus();
return b = false;
}
});
If (b == true) {
$(form).find(".warn").text("");
$(form).find(".errorMessage").hide();
}
return b;
}
/*検出フォームの必須ドロップダウン リスト*/
関数 checkselect(form) {
var b = true;
$(form).find(".select").each(function (i) {
var ck = $(this).find('option:selected').text();
If (ck.indexOf("select") > -1) {
$(this).parents(".form").find(".warn").text($(this).attr("nullmsg"));
$(this).parents(".form").find(".errorMessage").show();
$(this).select();
$(this).focus();
return b = false;
}
});
return b;
}
/*検出フォームの必須チェックボックスをオンにします*/
関数 checkChecked(フォーム) {
var b = true;
$(form).find(".checkbox").each(function (i) {
var ck = $(this)[0].checked;
if (!ck) {
$(this).parents(".form").find(".warn").text($(this).attr("nullmsg"));
$(this).parents(".form").find(".errorMessage").show();
$(this).select();
$(this).focus();
return b = false;
}
});
return b;
}
//正規表現と一致するかどうかを確認します
関数 GetFlase(value, reg, ele) {
If (reg.test(value)) {
true を返します;
}
$(ele).parents(".form").find(".warn").text($(ele).attr("logicmsg"));
$(ele).parents(".form").find(".errorMessage").show();
$(ele).focus();
$(ele).select();
return false //
を送信できません。 }
関数 CheckInputRex(フォーム) {
var b = true;
$(form).find("input[type='text']").each(function () {
If (typeof ($(this).attr("regex")) == 'string') {
If ($.trim($(this).val()).length > 0 && $(this).val() != this.defaultValue) {
// 現在のフォームの値
var value = $(this).attr("value") || $(this).val();
var regx = eval($(this).attr("regex"));
return b = GetFlase(value, regx, this);
}
}
});
return b;
}
///ユーザーが入力した対応する文字が有効かどうかを確認します
///このメソッドは廃止されました
関数 CheckInput(フォーム) {
var b = true;
$(form).find(".need").each(function () {
If ($.trim($(this).val()).length > 0 && $(this).val() != this.defaultValue) {
// 現在のフォームの値
var value = $(this).attr("value");
// id の値または name 属性の値は次のようになります: [name="contact"]
var name = $(this).attr("class");
// 入力する内容が合法かどうかを確認します。たとえば、連絡先情報
var len = name.split(" ");
for (var i = 0; i switch ($.trim(len[i])) {
                                                                                                                                                                                                                                                                                                 ケース「モバイル」:
var reg = /^1d {10} $ /;
戻り値 b = GetFlase(value, reg, this);
休憩;
                                                                                                                                                                                                                                             ケース「メール」:
var reg = /^[w-] (.[w-] )*@[w-] (.[w-] ) $/;
戻り値 b = GetFlase(value, reg, this);
休憩;
///2 つのパスワードは一致していますか? ケース「パスワード」:
休憩;
ケース「パスワード2」:
If ($("#password").attr("value") != $("#password2").attr("value")) {
                                                                            $(this).parents(".form").find(".warn").text($(this).attr("logicmsg"));
$(this).parents(".form").find(".errorMessage").show();
                                                                                                                                                                                                                                                    } 休憩;
ケース「ワークテル」:
case "hometel": //自宅の電​​話番号
var reg = /^d {8} $ /;
戻り値 b = GetFlase(value, reg, this);
休憩;
case "post": //郵便番号
var reg = /^d{6}$/;
戻り値 b = GetFlase(value, reg, this);
休憩;
ケース「ボーナス」:
ケース「許可」:
ケース「固定給与」:
var reg = /^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0 |0|[1-9]d)$/;
戻り値 b = GetFlase(value, reg, this);
休憩;
ケース「アイデンティティ」:
var reg = /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/;
戻り値 b = GetFlase(value, reg, this);
                            休憩;
                        ケース「高さ」:
                            var reg = /^[1-2][0-9][0-9]$/;
                            return b = GetFlase(value, reg, this);
                            休憩;
                        ケース "qq":
                            var reg = /^[1-9][0-9]{4,}$/;
                            return b = GetFlase(value, reg, this);
                            休憩;
                        ケース「開始時間」:
                        ケース「終了時間」:
                            var reg = /^d{4}$/;
                            if (reg.test(value) && (parseInt($(".endtime").val()) > parseInt($(".begintime").val())) {
                                b を返します;
                            }
                            $.ligerDialog.alert($(this).attr("msg"))
                            $(this).select(); //获取焦点
                            b = falseを返します。 // 提交できません
                            休憩;
                        ケース "番号":
                            var reg = /^d $/;
                            return b = GetFlase(value, reg, this);
                            休憩;
                        ///大陆去香港必要办理往来港澳通行证および香港的签注.因私普通护照号番号格式有:
///14/15 7 桁、G 8 桁; ///一般的なものは次のとおりです: P. 7 桁。 ///公式目的: S. 7 桁または //S D で始まる 8 桁は外交パスポートです case "postport": //パスポート番号
var reg = /^(Pd{7}|Gd{8}|Sd{7,8}|Dd |1[4,5]d{7})$/;
戻り値 b = GetFlase(value, reg, this);
休憩;
ケース「銀行口座」:
var reg = /^[0-9]{19}$/;
戻り値 b = GetFlase(value, reg, this);
休憩;
} //スイッチ
//
}
});
return b;
}
///このメソッドは非推奨になりました
});
///クリックして背景色を変更します
$(document).ready(function () {
var inputs = $("#top>.c>input");
$(inputs).each(function () {
This.onclick = function () {
document.getElementById("main").style.backgroundColor = this.name;
//$("#main").backgroundColor = this.name;
}
});
});



上記のコードは、カプセル化された汎用フォーム検出メソッドです。気に入っていただければ幸いです
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

PHPフォーム送信後のページジャンプを実装する方法 PHPフォーム送信後のページジャンプを実装する方法 Aug 12, 2023 am 11:30 AM

PHP フォーム送信後のページジャンプの実装方法 [はじめに] Web 開発において、フォーム送信は一般的な機能要件です。ユーザーがフォームに記入して送信ボタンをクリックした後、通常はフォーム データを処理のためにサーバーに送信する必要があり、処理後にユーザーは別のページにリダイレクトされます。この記事では、PHPを使用してフォーム送信後のページジャンプを実装する方法を紹介します。 [ステップ 1: HTML フォーム] まず、ユーザーが送信する必要のあるデータを入力できるように、HTML ページにフォームを含むページを記述する必要があります。

i7-7700 が Windows 11 にアップグレードできない場合の解決策 i7-7700 が Windows 11 にアップグレードできない場合の解決策 Dec 26, 2023 pm 06:52 PM

i77700 のパフォーマンスは win11 を実行するのに完全に十分ですが、ユーザーは i77700 を win11 にアップグレードできないことがわかります。これは主に Microsoft によって課された制限が原因であるため、この制限をスキップする限りインストールできます。 i77700 は win11 にアップグレードできません: 1. Microsoft が CPU バージョンを制限しているためです。 2. win11 に直接アップグレードできるのは、Intel の第 8 世代以降のバージョンのみです 3. i77700 は第 7 世代として、win11 のアップグレードのニーズを満たすことができません。 4. ただし、i77700はパフォーマンス的にはwin11を快適に使用するのに完全に可能です。 5. したがって、このサイトの win11 直接インストール システムを使用できます。 6. ダウンロードが完了したら、ファイルを右クリックして「ロード」します。 7. ダブルクリックして「ワンクリック」を実行します。

MIT の最新傑作: GPT-3.5 を使用して時系列異常検出の問題を解決する MIT の最新傑作: GPT-3.5 を使用して時系列異常検出の問題を解決する Jun 08, 2024 pm 06:09 PM

今日は、MIT が先週公開した記事を紹介します。GPT-3.5-turbo を使用して時系列異常検出の問題を解決し、時系列異常検出における LLM の有効性を最初に検証しました。プロセス全体に微調整はなく、GPT-3.5-turbo は異常検出に直接使用されます。この記事の核心は、時系列を GPT-3.5-turbo が認識できる入力に変換する方法とその設計方法です。 LLM が異常検出タスクを解決できるようにするためのプロンプトまたはパイプライン。この作品について詳しく紹介していきます。画像用紙タイトル:Large languagemodelscanbeゼロショタノマリデテ

PHP フォームでユーザー権限管理を処理する方法 PHP フォームでユーザー権限管理を処理する方法 Aug 10, 2023 pm 01:06 PM

PHP フォームでユーザー権限管理を処理する方法 Web アプリケーションの継続的な開発では、ユーザー権限管理は重要な機能の 1 つです。ユーザー権利管理により、アプリケーションにおけるユーザーの操作権限を制御し、データのセキュリティと合法性を確保できます。 PHP フォームでは、簡単なコードを通じてユーザー権限管理を実装できます。この記事では、PHP フォームでユーザー権限管理を処理する方法と、対応するコード例を紹介します。 1. ユーザー役割の定義と管理 まず第一に、ユーザー役割の定義と管理はユーザー権限の問題です。

JavaScript を使用してフォームの入力ボックスの内容のリアルタイム検証を実装するにはどうすればよいですか? JavaScript を使用してフォームの入力ボックスの内容のリアルタイム検証を実装するにはどうすればよいですか? Oct 18, 2023 am 08:47 AM

JavaScript を使用してフォームの入力ボックスの内容のリアルタイム検証を実装するにはどうすればよいですか?多くの Web アプリケーションでは、フォームがユーザーとシステム間の対話の最も一般的な方法です。ただし、データの正確性と完全性を保証するために、ユーザーが入力したコンテンツを検証する必要があることがよくあります。この記事では、JavaScript を使用してフォームの入力ボックスの内容のリアルタイム検証を実装する方法を学び、具体的なコード例を示します。フォームの作成 まず、HTML で簡単なテーブルを作成する必要があります。

JavaScript を使用してフォームの入力ボックスの内容の自動プロンプト機能を実現するにはどうすればよいですか? JavaScript を使用してフォームの入力ボックスの内容の自動プロンプト機能を実現するにはどうすればよいですか? Oct 20, 2023 pm 04:01 PM

JavaScript を使用してフォームの入力ボックスの内容の自動プロンプト機能を実現するにはどうすればよいですか?はじめに: フォーム入力ボックスの内容の自動プロンプト機能は、Web アプリケーションでは非常に一般的であり、ユーザーが正しい内容を迅速に入力するのに役立ちます。この記事では、JavaScript を使用してこの機能を実現する方法と、具体的なコード例を紹介します。 HTML 構造の作成 まず、入力ボックスと自動提案リストを含む HTML 構造を作成する必要があります。次のコードを使用できます: <!DOCTYP

TrendForce: Nvidia の Blackwell プラットフォーム製品により、TSMC の CoWoS 生産能力は今年 150% 増加します TrendForce: Nvidia の Blackwell プラットフォーム製品により、TSMC の CoWoS 生産能力は今年 150% 増加します Apr 17, 2024 pm 08:00 PM

4月17日の当サイトのニュースによると、TrendForceは最近、Nvidiaの新しいBlackwellプラットフォーム製品に対する需要は強気で、2024年にはTSMCのCoWoSパッケージング総生産能力が150%以上増加すると予想されるレポートを発表した。 NVIDIA Blackwell の新しいプラットフォーム製品には、B シリーズ GPU と、NVIDIA 独自の GraceArm CPU を統合する GB200 アクセラレータ カードが含まれます。 TrendForce は、サプライチェーンが現在 GB200 について非常に楽観的であることを確認しており、2025 年の出荷台数は 100 万台を超え、Nvidia のハイエンド GPU の 40 ~ 50% を占めると予想されています。 Nvidiaは今年下半期にGB200やB100などの製品を提供する予定だが、上流のウェーハパッケージングではさらに複雑な製品を採用する必要がある。

改良された検出アルゴリズム: 高解像度の光学式リモートセンシング画像でのターゲット検出用 改良された検出アルゴリズム: 高解像度の光学式リモートセンシング画像でのターゲット検出用 Jun 06, 2024 pm 12:33 PM

01 今後の概要 現時点では、検出効率と検出結果の適切なバランスを実現することが困難です。我々は、光学リモートセンシング画像におけるターゲット検出ネットワークの効果を向上させるために、多層特徴ピラミッド、マルチ検出ヘッド戦略、およびハイブリッドアテンションモジュールを使用して、高解像度光学リモートセンシング画像におけるターゲット検出のための強化されたYOLOv5アルゴリズムを開発しました。 SIMD データセットによると、新しいアルゴリズムの mAP は YOLOv5 より 2.2%、YOLOX より 8.48% 優れており、検出結果と速度のバランスがより優れています。 02 背景と動機 リモート センシング技術の急速な発展に伴い、航空機、自動車、建物など、地表上の多くの物体を記述するために高解像度の光学式リモート センシング画像が使用されています。リモートセンシング画像の判読における物体検出

See all articles