検索
ホームページウェブフロントエンドjsチュートリアルjquery ajax 検証が失敗し、問題を解決するためにフォームが送信される_jquery

validationEngine は、フロントエンドのフォーム検証における多くの作業を軽減します。ほとんどの場合、validationEngine を使用していくつかの方法でフォームを検証します。

1 通常のフォーム送信を使用します。この場合、validationEngine が検証に失敗した場合、フォームは送信されません。

2 ajax を使用してフォームを送信しますが、ajax 検証は使用しないでください。

このメソッドも比較的単純で、ajax リクエストを使用する前に検証に合格したかどうかを確認するだけです。例:

コードをコピーします コードは次のとおりです:
//検証が失敗した場合に戻ります
If(!$("form#ajaxForm").validationEngine("validate")) return ; $.ajax({
入力: 「POST」、
URL: $("#ajaxForm").attr("アクション"),
データ: $("#ajaxForm").serialize()、
データ型: "html"、
成功: function(data){
                                                    });



3 通常のフォームを使用して送信しますが、ajax 検証を使用します。この方法は、フォームを送信するときに、ajax 検証が通らなくてもフォームを送信できます。インターネットはソースコードを変更します。以下はスクリーンショットです:

。この方法は現在の状況では実行可能ですが、この変更方法自体は推奨されず、他の場所に影響を与える可能性があります。

コードをコピーします コードは次のとおりです: 関数 beforeCall(form,options){
If(window.console){
console.log("フォーム送信の検証に合格した後、Ajax 送信前のコールバック"); };
true を返します。
};
//
function ajaxValidationCallback(status,form,json,options){
If(window.console){
コンソール.ログ(ステータス); };
If(ステータス === true){
alert("フォームは有効です!"); }
};
jQuery(ドキュメント).ready(function(){
jQuery("#formID").validationEngine({
ajaxFormValidation: true, //フォームの送信に Ajax を使用するかどうか
ajaxFormValidationMethod: 'post', //Ajax が送信するときのデータ送信方法を設定します
onAjaxFormComplete: ajaxValidationCallback, //Ajax 検証が完了した後のフォーム送信
onBeforeAjaxFormValidation: beforeCall //フォーム送信の検証に合格した後、Ajax 送信前のコールバック
});
});



beforeCall このメソッドは呼び出されないため、まだ使用できません

4 ajax を使用して、ajax を使用してフォームを検証および送信します。この方法はわかりにくく、上記のソース コードを変更する方法は使いにくいです。
3 番目と 4 番目の方法の解決策は次のとおりです:

ajax 検証を使用するフォーム タグにカスタム属性 control="userName,email" を追加します。属性値は、ajax を使用して検証されるコントロールの ID です (複数のコントロールはカンマで区切られます)。

コードをコピーします

コードは次のとおりです:
検証が必要な各コントロールに、url (ajax リクエストのアドレス) と error (失敗した場合のプロンプト メッセージ) の 2 つの属性を追加します


コードをコピーします

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

JavaScript で 2 つのグローバル配列を宣言します

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

var controlId = new Array() //検証に失敗したコントロール ID を保存します
varerrors = new Array() //検証に失敗した場合のプロンプト メッセージを保存します

そのアイデアは、フォーム タグのコントロール属性の値を取得し (各コントロール ID をカンマで区切る)、ajax を使用してリクエストを走査し、検証が失敗した場合にコントロール ID とプロンプト情報を controlId に追加することです。およびエラー、およびプロンプト情報。フォームを送信するときに、controlId が空であるかどうかを確認します。空でない場合は、プロンプト情報がループで表示されます。

コードをコピーします コードは次のとおりです:
$(function() {
var ajaxForm2Controls = $("form#ajaxForm2Controls")
//フォームが送信されたとき
$(ajaxForm2Controls).submit(function() {
ajaxForm2Control(ajaxForm2Controls) ; false を返す ; });
//フォーカスを失ったときにコントロールを検証します
valControls(ajaxForm2Controls); });



フォーム送信方法:

コードをコピーします

コードは次のとおりです: function ajaxForm2Control(obj) { //エラーメッセージがある場合は戻り、エラーメッセージを表示します
If(controlId.length > 0) {
アラート情報()
false を返す ; }
If(!$(obj).validationEngine("validate")) return false; // Ajax 検証を使用しないコントロールを検証します (Ajax 検証されていないフィールドは通常どおり検証でき、失敗した場合は返されます)
$.ajax({
入力: 「POST」、
URL: $(obj).attr("アクション")、
データ: $(obj).serialize()、
データ型: "html"、
成功: function(data){
                                                                                } });
}



フォーカス イベントをフォームに追加します



コードをコピー

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


//
形式で検証する必要があるコントロール 関数 valControls(ajaxForm2Controls) {
//Ajax 検証が必要なコントロールを取得
var controlStr = ajaxForm2Controls.attr("コントロール"); //属性が未定義の場合にリターン
If(typeof(controlsStr) === "未定義" ||controlsStr.length var コントロール = controlStr.split(/,/g) ; for(コントロール内の変数 i) {
//フォーカス離脱イベントを追加
$("#" コントロール[i]).blur(function() {
If($(this).val().length controlId.length = 0; errors.length = 0; //エラーメッセージ
var error = $(this).attr("error") ;
$.ajax({
入力: "GET"、
URL: $(this).attr("url"),
データ: $(this).serialize()、
データ型: "テキスト"、
成功: function(data){
If(data==="true") {
//検証が失敗した場合はエラーメッセージを配列に入れます
controlid.push(controls [i]); errors.push(error);                                                                                                                                                           アラート情報()
                                                                                                                                                                                                                                                           }); }) ; }
}



エラーメッセージ:





コードをコピー


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

//ポップアップメッセージ
functionalertinfo() {
If(controlId.length > 0) {
for(controlId の変数 i) {
//validationEngine メソッドは、指定された ID のプロンプトをポップアップ表示します
// 使用法:$("#id").validationEngine("showPrompt","プロンプトコンテンツ","load"); //< Span style = "">この要素にプロンプ​​トを作成します $("#" controlId[i]).validationEngine("showPrompt",errors[i], "error");                                                                             }
}



この方法では、3 番目または 4 番目の方法でフォームを送信するときに、送信する前に controlId を呼び出して値があるかどうかを確認するだけです。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScript in Action:実際の例とプロジェクトJavaScript in Action:実際の例とプロジェクトApr 19, 2025 am 12:13 AM

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

JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

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

JavaScriptエンジンの理解:実装の詳細JavaScriptエンジンの理解:実装の詳細Apr 17, 2025 am 12:05 AM

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

Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

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

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

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

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

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

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

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

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

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

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版

SublimeText3 中国語版

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

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター