ここでは、フォーム要素とフォーム送信に関する知識を紹介します。 フォーム要素 フォーム要素の 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に接続し、追加、削除、変更、チェックのための実装コードをカプセル化します。
目次1. コンポーネントの登録1.1 グローバル登録1.2 グローバルコンポーネントの登録プロセス1...
まず設定ファイルがどこにあるか調べる nginx.confはどこにありますかこれらのディレクトリを調...
毎日の統計情報を取得するプロジェクトを実行する際、プロジェクト ログを分析する必要があります。要件の...
私は長い間 CSS を使用してきましたが、Web 要素の関連属性を設定するために常に「px」を使用し...
設定ファイルを server.xml と content.xml に書き込みます。サーバーを再起動す...
序文このプロジェクトには、衛星測位用のグラフィックスを含むチャートの要件があり、北半球または南半球の...
1 はじめにスレッド技術は 1960 年代にすでに提案されていましたが、マルチスレッドがオペレーティ...
現在の時刻を取得します: current_timestamp を選択します。出力: 2016-06-...
背景モバイル デバイスでは、ページ ジャンプ間のキャッシュが必須要件です。例: ホームページ =&g...
1. オンラインインストール現在、Linux x86アーキテクチャのオンラインインストールのみを試し...
多くの場合、ローカル データベースのデータをエクスポートしたり、他のデータベースからデータをインポー...
https ベースポート 443。これはキーと呼ばれるものに使用されます。これらのことを理解せずにで...
時間が経つにつれて、多くの人が XHTML の使い方を知らないことに気づきました。普通の初心者だけで...
1. JSの非同期実行の原則JavaScript はシングルスレッドですが、ブラウザはマルチスレッド...
次の図に示すように: 仮想マシンと Docker を使用するとき、「なぜ Docker は VM よ...