検索

Form Validation on the Client Side

クライアントフォームの検証は重要です。時間と帯域幅を節約し、フォームに記入するときにユーザーが間違いを犯す場所を指摘するためのより多くのオプションを提供します。そうは言っても、これはサーバー側の確認を必要としないという意味ではありません。あなたのウェブサイトにアクセスするユーザーは、古いブラウザまたは無効なJavaScriptを使用している可能性があります。クライアントとサーバー側の検証は互いに補完されるため、実際に独立して使用するべきではありません。

なぜクライアント検証が重要なのですか?

クライアント認証を使用する2つの理由があります:

  1. これはすぐに確認する方法です。何かがうまくいかない場合、フォームが送信されるとアラートがトリガーされます。

  2. 一度に1つのエラーのみを安全に表示し、間違ったフィールドに焦点を合わせて、ユーザーが必要なすべての詳細を正しく記入できるようにすることができます。

2つの主要な検証方法

クライアントフォームの検証の2つの主な方法は次のとおりです。

    一度にエラーを表示し、問題のあるフィールドに焦点を合わせます
  • すべてのエラーを同時に表示すると、サーバー側の検証スタイル
サーバー側の検証にはすべてのエラーを同時に表示する必要がありますが、クライアントを確認するためのより良い方法は、一度に1つのエラーを表示することです。これにより、誤って満たされたフィールドのみを強調表示できるため、訪問者がフォームを正常に変更して送信しやすくなります。すべてのエラーを同時にユーザーに提示すると、ほとんどの人は、各修正後に再送信しようとするのではなく、一度にそれらを覚えて修正しようとします。

これらの利点を考えると、一度に1つのエラーを示す検証方法のみに焦点を当てます。

フォームを確認する方法
たとえば、
次のコードスニペット:

<code><br>
function validateMyForm() { <br>
if (parseInt(document.forms[0].phone.value)  <br>
        != document.forms[0].phone.value) { <br>
alert('请输入电话号码,仅限数字'); <br>
return false; <br>
} <br>
 <br>
return true; <br>
} <br>
<br><br></code>
電話:

何が問題なのですか?まあ、これの前に別のフォームを追加すると、コードは間違ったフォームを検証しようとします。

より良い方法は、フォーム名を含めることです:

<code>function validateMyForm() { <br>
if (parseInt(document.forms.myForm.phone.value)  <br>
        != document.forms.myForm.phone.value) { <br><br></code>
onsubmit = "return validatemyform();"&gt;

フォーム名を削除しましょう:

<code>function validateMyForm(form) { <br>
if (parseInt(form.phone.value) != form.phone.value) { <br><br></code>
この最後の方法では、オブジェクトを使用します。これは常に現在のオブジェクトを指します。これにより、コードがよりポータブルになり、タイピング時間を節約できます。

訪問者の生活を今より楽にするにはどうすればよいですか?エラーを自分で調べるのではなく、エラーをトリガーするフィールドに焦点を当てましょう。

<code>function validateMyForm(form) { <br>
if (parseInt(form.phone.value) != form.phone.value) { <br>
alert('请输入电话号码,仅限数字'); <br>
form.phone.focus(); <br>
form.phone.select(); <br>
return false; <br>
}</code>
これらの変更により、ブラウザは誤ったフィールドへの記入に焦点を当て、訪問者のテキストを選択します。スクロールが必要な場合は、これも自動的に発生します。

わかりました、これは素晴らしいですが、各フィールドにコードが多すぎると思いますか?ページに多くのタイピングとダウンロード時間を節約できる単純な機能のライブラリを作成した場合はどうなりますか?さて、次にこれを行います - 検証コードを短くするために基本的な関数を定義します。

<code><br>
function validateMyForm() { <br>
if (parseInt(document.forms[0].phone.value)  <br>
        != document.forms[0].phone.value) { <br>
alert('请输入电话号码,仅限数字'); <br>
return false; <br>
} <br>
 <br>
return true; <br>
} <br>
<br><br></code>

この関数は、数字の単純な検証を実行します - フィールドに数値のみが含まれているかどうか、およびそれが特定の範囲内にあるかどうかをチェックします。このコードがパラメーターとしてエラーメッセージを渡すことに気付くでしょう。このような関数を使用するには、基本的に次のように監督ハンドラーに追加できます。

<code>function validateMyForm() { <br>
if (parseInt(document.forms.myForm.phone.value)  <br>
        != document.forms.myForm.phone.value) { <br><br></code>
onsubmit = "return validAtenumber(this.phone、

「電話番号を入力してください、数値のみ」、5、10);
数値を検証する別の方法は、特定の範囲内にあることを要求することです。関数にそのような検証を実行させるには、チェックラインを次のように変更するだけです。

複数のチェックをフォームに適用する場合は、OnSubmitハンドラーに複数のルールを埋め込むことができます。たとえば、電話番号に加えて、姓と姓も入力する必要があると想像してください。

<code>function validateMyForm(form) { <br>
if (parseInt(form.phone.value) != form.phone.value) { <br><br></code>
onsubmit = "return(

validAtenumber(this.phone、 '電話を入力してください

番号、数字のみ '、5、10)&&
<code>function validateMyForm(form) { <br>
if (parseInt(form.phone.value) != form.phone.value) { <br>
alert('请输入电话号码,仅限数字'); <br>
form.phone.focus(); <br>
form.phone.select(); <br>
return false; <br>
}</code>
validAtestring(this.firstname、 '入力

を入力してください あなたの名前 '、3、15)&&
validAtestring(this.lastname、 '入力してください
あなたの姓 '、3、15)
); "&gt;コードでは、すべての検証ルールをtrueとして評価する必要があります(ロジックと - &&を使用)。詳細な見方は、サーバースクリプト言語からそのようなコードを生成するのが非常に簡単であることを示しています...しかし、これは別の記事です。

ご覧のとおり、文字列検証関数は多かれ少なかれ同じように見えます。

ウェブ上の多くの形式、つまりユーザーのメールアドレスで共通のフィールドが必要です。私はこれを行う多くの機能を見てきましたが、通常、電子メールアドレスを検証する最も簡単で簡単な方法は、正規表現を使用することです。

<code>function validateNumber(field, msg, min, max) {  <br>
if (!min) { min = 0 }  <br>
if (!max) { max = 255 }  <br>
  <br>
if ( (parseInt(field.value) != field.value) ||   <br>
        field.value.length  max) {  <br>
alert(msg);  <br>
field.focus();  <br>
field.select();  <br>
return false;  <br>
}  <br>
  <br>
return true;  <br>
}</code>
ここで、フィールドをオプションとして定義できるように、関数を拡張します。

必要なメールを確認するには、次のように呼び出す必要があります。

オプションに設定する場合:

<code></code>

JavaScriptを検証だけに使用することはできませんが、持っている場合は非常に役立ちます。 HTMLに埋め込んだコードをコンパクトになればなるほど、ダウンロード時間を節約し、検索エンジンがあなたのようになります!

<code>if ((parseInt(field.value) != field.value) ||   <br>
field.value  max) {</code>
フォーム検証(FAQ)

に関するよくある質問

クライアント検証とサーバー側の検証の違いは何ですか?
<code></code>
フォームデータがサーバーに送信される前に、JavaScriptを使用して、ユーザーのブラウザでクライアント検証が実行されます。インスタントフィードバックを提供し、ユーザーエクスペリエンスを向上させます。ただし、JavaScriptを無効にしたり、コードを操作したりすることでバイパスすることができるため、完全に安全ではありません。

一方、フォームデータを送信した後、サーバー側の検証がサーバーで実行されます。ユーザーがバイパスできないため、より安全です。ただし、パフォーマンスやユーザーエクスペリエンスに影響を与える可能性のあるサーバーへの往復が必要です。したがって、最高のセキュリティとユーザーエクスペリエンスのために、クライアントとサーバー側の両方の検証を使用することをお勧めします。

PHPでフォーム検証を実装する方法は?

PHPは、さまざまなフォーム検証関数を提供します。たとえば、さまざまなフィルターを使用してFilter_Var()関数を使用して、入力データを検証およびクリーニングできます。これがメールアドレスを確認する簡単な例です。

$ email = $ _post ["email"]; if(!filter_var($ email、filter_validate_email)){ エコー「無効な電子メール形式」; } このコードは、送信された電子メールアドレスが正しくフォーマットされているかどうかを確認します。そうでない場合は、エラーメッセージが表示されます。

いくつかの一般的な検証手法は何ですか?

いくつかの一般的な検証手法には、必要なフィールド、長さの制限、パターンマッチング、およびデータ型チェックが含まれます。必要なフィールドは、ユーザーが必要なすべての情報を入力することを保証します。長さの制限は、入力できる文字の数を制限します。パターンマッチは、入力が電子メールアドレスや電話番号などの特定のパターンと一致するかどうかを確認します。データ型チェックにより、入力が数字や日付などの正しいタイプであることが保証されます。

検証エラーメッセージを表示する方法は?

JavaScriptを使用して、PHPを使用してクライアント検証またはサーバー側の検証を使用して検証エラーメッセージを表示できます。 JavaScriptでは、setCustomValisit()メソッドを使用して、カスタム検証メッセージを設定できます。 PHPでは、変数にエラーメッセージを保存して、フォームに表示できます。

チェックボックスを確認する方法は?

チェックボックスが選択されているかどうかを確認して、チェックボックスを確認できます。 JavaScriptでは、チェックされたプロパティを使用できます。 PHPでは、チェックボックスの値が$ _POSTまたは$ _GETで表示されるかどうかを確認できます。

ドロップダウンリストを確認する方法は?

有効なオプションが選択されているかどうかを確認して、ドロップダウンリストを確認できます。 JavaScriptでは、SelectedIndexプロパティを使用できます。 PHPでは、選択した値が有効な値の配列にあるかどうかを確認できます。

ラジオボタンを検証する方法は?

オプションのいずれかが選択されているかどうかを確認して、ラジオボタンを確認できます。 JavaScriptでは、ラジオボタンをループして、チェックされたプロパティを使用できます。 PHPでは、無線ボタンの値が$ _POSTまたは$ _GETで表示されるかどうかを確認できます。

日付を確認する方法は?

日付が正しくフォーマットされているかどうか、実際の日付であるかどうかを確認して、日付を確認できます。 JavaScriptでは、日付オブジェクトを使用できます。 PHPでは、checkdate()関数を使用できます。

ファイルアップロードを検証する方法は?

ファイルのサイズ、ファイルの種類、ファイル拡張子をチェックして、ファイルのアップロードを確認できます。 JavaScriptでは、ファイルプロパティを使用できます。 PHPでは、$ _filesアレイを使用できます。

SQL注射を防ぐ方法は?

前処理されたステートメントまたはSQLコードをデータから分離するパラメーター化されたクエリを使用して、SQLインジェクションを防ぐことができます。これにより、データがコードとして解釈されるのを防ぎます。 PHPでは、PDOまたはMySQLI拡張機能を使用して、プレ処理ステートメントを実行できます。

以上がクライアント側のフォーム検証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python vs. JavaScript:ジョブに適したツールを選択するPython vs. JavaScript:ジョブに適したツールを選択するMay 08, 2025 am 12:10 AM

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScript:それぞれの強みを理解するPythonとJavaScript:それぞれの強みを理解するMay 06, 2025 am 12:15 AM

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

JavaScriptのコア:CまたはCの上に構築されていますか?JavaScriptのコア:CまたはCの上に構築されていますか?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptアプリケーション:フロントエンドからバックエンドまでJavaScriptアプリケーション:フロントエンドからバックエンドまでMay 04, 2025 am 12:12 AM

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

Python vs. Javascript:どの言語を学ぶべきですか?Python vs. Javascript:どの言語を学ぶべきですか?May 03, 2025 am 12:10 AM

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワーク:最新のWeb開発のパワーJavaScriptフレームワーク:最新のWeb開発のパワーMay 02, 2025 am 12:04 AM

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

JavaScript、C、およびブラウザの関係JavaScript、C、およびブラウザの関係May 01, 2025 am 12:06 AM

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、型を使用してストリーミングしますnode.jsは、型を使用してストリーミングしますApr 30, 2025 am 08:22 AM

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

mPDF

mPDF

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

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター