フォームを空にすることはできない (.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;
}
});
});
上記のコードは、カプセル化された汎用フォーム検出メソッドです。気に入っていただければ幸いです
。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

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

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
