ここでは、フォーム要素とフォーム送信に関する知識を紹介します。 フォーム要素 フォーム要素の DOM インターフェイスは
入力要素 input 要素は、広く使用されているフォーム要素です。type 属性の値に応じて、次のような一般的な用途があります。 テキスト入力 <input type="text" name=""> 無線 グループ化するには?異なる名前属性を設定するだけです 例: <input type="radio" name="favourite" value="ゲームをプレイ">ゲームをプレイ <input type="radio" name="sex" value="man">男性 プレースホルダー 入力フィールドの予想される値を説明するヒントを提供します。 タイプ=非表示 隠し入力を定義します。非表示フィールドはユーザーには表示されません。隠しフィールドには通常、デフォルト値が格納されますが、その値は JavaScript によって変更することもできます。 送信ボタン フォームに送信ボタンを追加すると、ユーザーはフォームを送信できるようになります。 次の 3 つのボタンは、クリックするとフォームの送信イベントをトリガーできます。 <input type="submit" /> <button type="送信"></button> <入力タイプ="画像" /> 仕様上のボタン要素のタイプのデフォルト値は submit ですが、IE678 のデフォルト値は button であるため、互換性のために、button 要素に type="submit" 属性を手動で追加する必要があります。 イベントを送信 初心者は、フォームの送信は送信ボタンのクリックイベントによってトリガーされると考えるかもしれません。実際には、ボタン要素のクリックイベントとフォームの送信イベントは、ブラウザによって異なる順序で実行されます。したがって、フォームの送信イベントを正確に制御するには、フォームの送信イベントで検証などの操作を実行することを選択します。 form.addEventListener('submit', 関数(e) { (有効な())の場合{ ... } e.preventDefault() }) フォーム要素に上記 3 つのボタンがいずれも存在しない場合、ユーザーはフォームを送信できません (Enter キーも無効)。このとき、フォーム要素固有の (有効な())の場合{ フォームを送信します。 } フォームの送信とユーザーエクスペリエンス 一般的な ajax+cross-domain POST (CORS) テクノロジーに基づいて、フォーム要素を使用してデータを直接サーバーに送信できない場合があります。これは実行可能ですが、ほとんどの場合、エクスペリエンスが低下します。 JavaScript フォーム検証 JavaScript を使用すると、HTML フォームの入力データをサーバーに送信する前に検証できます。 JavaScript によって検証される一般的なフォーム データは次のとおりです。 ユーザーはフォームの必須フィールドに入力しましたか? 次の関数は、ユーザーがフォーム内の必須項目を入力したかどうかを確認するために使用されます。必須フィールドまたは必須フィールドが空の場合、警告ボックスがポップアップ表示され、関数の戻り値は false になります。それ以外の場合、関数の戻り値は true (データに問題がないことを意味します) になります。 関数validate_required(フィールド、アラートテキスト) { (フィールド) { if (値==null||値=="") {アラート(アラートtxt); falseを返す} そうでない場合は{trueを返す} } } 以下に HTML フォームとコードを示します。 <html> <ヘッド> <script type="text/javascript"> 関数validate_required(フィールド、アラートテキスト) { (フィールド) { if (値==null||値=="") {アラート(アラートtxt); falseを返す} そうでない場合は{trueを返す} } } 関数validate_form(thisform) { (thisform) で { if (validate_required(email,"メールアドレスを入力する必要があります!")==false) {email.focus(); false を返す} } } </スクリプト> </head> <本文> <form action="submitpage.htm" onsubmit="return validate_form(this)" method="post"> メールアドレス: <input type="text" name="email" size="30"> <input type="submit" value="送信"> </フォーム> </本文> </html> メール認証 次の関数は、入力データが電子メール アドレスの基本構文に準拠しているかどうかを確認します。 つまり、入力データには @ 記号とピリオド (.) が含まれている必要があります。また、@ は電子メール アドレスの最初の文字には使用できず、@ の後には少なくとも 1 つのピリオドが必要です。 関数validate_email(フィールド、アラートテキスト) { (フィールド) { apos=値.indexOf("@") dotpos=値.lastIndexOf(".") (apos<1||dotpos-apos<2) の場合 {アラート(アラートtxt); falseを返す} そうでない場合は{trueを返す} } } 完全なコードと HTML フォームは次のとおりです。 <html> <ヘッド> <script type="text/javascript"> 関数validate_email(フィールド、アラートテキスト) { (フィールド) { apos=値.indexOf("@") dotpos=値.lastIndexOf(".") (apos<1||dotpos-apos<2) の場合 {アラート(アラートtxt); falseを返す} そうでない場合は{trueを返す} } } 関数validate_form(thisform) { (thisform) で { if (validate_email(email,"有効なメールアドレスではありません!")==false) {email.focus(); false を返す} } } </スクリプト> </head> <本文> <form action="submitpage.htm" onsubmit="return validate_form(this);" method="post"> メールアドレス: <input type="text" name="email" size="30"> <input type="submit" value="送信"> </フォーム> </本文> </html> ショートカットキーの送信 フォーム要素ラッパーがない場合、現在のページのフォーカスがフォーム要素にある場合でも、Enter キーを押してもフォームの送信はトリガーされません。ユーザーはキーボード制御からマウス/ジェスチャ制御に切り替える必要があり、元のスムーズさが損なわれます。最も簡単な解決策は、外側のレイヤーでフォーム要素を使用してラップし、フォーム要素に少なくとも 1 つの送信ボタンがあることを確認することです。このとき、フォームの入力フィールドにフォーカスが当たった状態で、ユーザーは Enter キーを押して送信をトリガーします。 ブラウザはアカウントのパスワードを記憶します フォームを送信すると、モバイル ブラウザを含む高度なブラウザは、ユーザーにユーザー アカウントとパスワードを記憶する必要があるかどうかを尋ねます。一般ユーザーにとって、これは特にモバイル デバイスで非常に便利な機能であり、ユーザーの時間を大幅に節約できます。フォーム要素がない場合、ブラウザはクエリ ウィンドウをポップアップ表示しません。 要約する フォーム アプリケーションを開発する場合、フォーム要素を削除して直接送信しないでください。フォーム要素には送信ボタンを含める必要があります。ボタン要素の場合は、type="submit" 属性を手動で追加する必要があります。送信イベントは、送信ボタンのクリック イベントではなく、フォーム要素の送信イベントで処理されます。 参照: フォーム要素とフォーム送信 |
<<: インタラクションデザインと心理学の驚くべきつながり18選
>>: NodeはMySQLに接続し、追加、削除、変更、チェックのための実装コードをカプセル化します。
表は以下のとおりです。 Unity が読み取って呼び出すときのコード: データベース内の別のテーブル...
CentOS7をダウンロード私がダウンロードしたイメージはCentOS-7-x86_64-DVD-1...
目次共通バージョンの紹介共通バージョンのダウンロードアドレスとインストール以下に簡単な違いを示します...
質問: DockerにNginxをインストールするときに次のエラーが発生しました: docker: ...
序文lvm (論理ボリューム マネージャー) 論理ボリューム管理は、Linux システムのニーズを満...
目次1. 準備2. 減圧3. 統合を開始する1. 準備Ckeditor_4.5.7_full + C...
背景開発中、特定の状況でビジネス ロジックをバッチ処理するためのスクリプトが必要になる場合があります...
この記事では主にTomcatプロセスを記録し、TCP接続が多すぎることによるCPU使用率の過剰のトラ...
最初のステップは、MySQL 8.0.23の無料インストールバージョンをダウンロードすることです。 ...
序文最近プロジェクトに取り組んでいたとき、UI デザインのフォント サイズは 10 ピクセルでした。...
W3C は最近、「 XHTML Basic1.1 」と「 Mobile Web Best Prac...
標準化されたデザインソリューション - マークアップ言語とスタイルマニュアルWeb 標準ソリューショ...
目次序文分析する初期レンダリング方法初期最適化さらなる最適化方法2序文ほとんどのミニプログラムには、...
1. 色合わせの問題<br />Web ページには 3 色以上使用しないでください。そう...
iframe を使用すると、他の Web サイトのページを簡単に呼び出すことができますが、注意して使...