検索
ホームページウェブフロントエンドjsチュートリアルJavaScript DOM学習 第5章 Forms入門_基礎知識

各フォームの検出項目が異なるため、汎用コードを与えることはできません。この章で紹介した要素を使用して独自の検出関数を構築する必要があります。次のページに例を示しますので、ご参照ください。

この章では、まず JavaScript を使用してフォームを検出する場合の制限について説明し、次に送信時ハンドラーについて説明し、次にフォーム自体のメソッドとプロパティについて説明します。最後はフォーム要素にアクセスする方法です。

フォーム使用時のエラーと解決策を紹介する Jeff Howden による記事もこちらにあります。 フォームと JavaScript の調和
制限事項
まず、ユーザーがフォームを送信したときに JavaScript 検出コードが何を行うかを理解する必要があります。
1 , JavaScript がフォームを検出すると、次のようになります。コードにエラーが見つかった場合、送信は一時停止され、ユーザーには正しいデータを入力するよう警告が表示されます。
2. エラーがない場合、または JavaScript がオフになっている場合、フォームのコンテンツはサーバーに送信されます。
3. サーバー側スクリプトがエラーを検出すると、エラー情報が返されます。この場合、ユーザーは再度送信する前にフォームに戻ってデータを入力する必要があります。
4. エラーが発生しない場合、サーバーは必要な作業を完了し、感謝のメッセージを表示します。
ご覧のとおり、データは送信プロセス中に 2 回チェックされます。1 回目は JavaScript によって、もう 1 回目はサーバーによってチェックされます。サーバー側の検出は常に可能であり、信頼性が高くなります。 JavaScript の検出は、ユーザーが JavaScript 機能をオンにした場合にのみ役立ちます。サーバーは常に信頼性が高く、ユーザーが使用するブラウザとは関係がないのに、なぜ JavaScript の検出が必要なのでしょうか。
JavaScript 検出は、サーバーに送信される前にデータを検出できるため、サーバー側の検出を効果的に補完します。これにより、ユーザは、戻るボタンを使用してフォームの内容を戻って修正する必要がなくなり、また、間違った内容を見つけるのも非常に面倒になります。したがって、JavaScript の検出は、サーバー側の検出よりもユーザー エクスペリエンスに役立ちます。
つまり、JavaScript は完全な検出メカニズムではありませんが、サーバー側の補足と使いやすさとしては依然として良い選択です。したがって、ユーザー エクスペリエンスの要件を満たすだけでなく、プログラムのセキュリティも確保できる、これら 2 つの検出メカニズムを使用することをお勧めします。
onsubmit
JavaScript を使用してフォームを検出する場合、最初に行う必要があるのは、onsubmit のイベント ハンドラーを作成することです。このプログラムは、ユーザーがフォームを送信すると実行されます。このプログラムは、特定のフィールドに値が入力されているかどうか、それらのチェックボックスの少なくとも 1 つが選択されているかどうか、またはその他チェックする必要があるものをチェックします。
コードは次のとおりです:

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



checkscript() は、このプログラムの名前です。このコードは true または false を返す必要があります。 false が返された場合、フォームは送信されず、true または false が返されたかどうかに関係なく、コードの実行が停止します。
生成されたコードは次のとおりです:
コードをコピーします コードは次のとおりです:

function checkscript( ) {
if (値が何かである/何かではない) {
// 何かが間違っています
alter('問題のユーザーに警告')
return false; 🎜>}
else(別の値は何かではない){
ここでは、すべてが大丈夫です🎜>}


もちろん、多数のフォーム項目または多数のラジオ ボタン ボックスを検出する必要がある場合、このコードは非常に複雑に記述することができます。基本的な考え方は次のとおりです。フォーム内のチェックが必要なすべての要素を繰り返し処理し、エラーが見つかった場合は false を返し、コードの実行が停止し、フォームは送信されません。
エラーを見つけた場合は、ユーザーに警告する必要があります。アラート ボックスを使用することもできますが、現在のほとんどの方法では、エラー メッセージを生成し、それをエラー エントリに追加します。
最後にのみ、すべての要素をチェックしてエラーが見つからなかった場合は true を返し、フォームが送信されます。
フォームのメソッドとプロパティ
JavaScript には、フォームを処理するためのいくつかの組み込みメソッドとプロパティもあります。そのうち 3 つはより重要です:
submit() メソッドを使用してフォームを送信できます。ページ上の最初のフォームを送信するには、次のように記述します:
コードをコピー コードは次のとおりです:
document.forms[ 0].submit()
ユーザーが JavaScript を使用してフォームを送信すると、フォームのイベント ハンドラーが機能しないことに注意してください。
フォームをリセットするには、次のことができます:
[code] document.forms[0].reset()
テストせずに、このメソッドを使用すると、フォームのイベント ハンドラーがリセットされると仮定します。実行されません。
最後に、フォームの ACTION 項目を変更できます:
[code] document.forms[0].action = 'the_other_script.pl';
これは、フォームを他のユーザーに送信する必要がある場合に使用されます。この方法は非常に便利です。
フォーム要素へのアクセス
フォーム有効性検出では、ユーザーが入力した内容を知るためにフォーム要素へのアクセスが必要です。したがって、最初にレベル 0 DOM に基づいてフォームにアクセスする必要があります。一般的には次のように記述されます:
[code] document.forms[number].elements[number]
ページが読み込まれると、JavaScript はページ上のすべてのフォームを保存するためのフォーム配列を生成します。したがって、最初のフォームは Forms[0]、2 番目のフォームは Forms[1] というようになります。
JavaScript は、フォーム内の各要素も配列に保存します。最初の要素は elements[0] で、2 番目の要素は elements[1] です。すべての input、select、および textarea は 1 つの要素です。
場合によっては、フォームと要素の名前を使用した方がよい場合があります。 HTML では、次のような各要素に名前を付ける必要があります。
[code]
3 5

[code] document.personal.name 2 document.personal.address 3 document.personal.city
name を使用する利点は、ページ上のすべての要素の順序を乱すことができることです。コードは引き続き実行できますが、配列が使用されている場合は実行できません。たとえば、上の例では都市入力ボックスは document.forms[0].elements[2] ですが、最初に入力すると document.forms[0].element[0] になります。コードを変更します。
値の検出
もちろん、最も重要なことは、ユーザーが入力した値、または選択したチェック ボックスを検出することです。場合によっては、フォームに他の情報も入力したいことがあります。
次の小さなコード スニペットは、フォーム内の要素にアクセスするのに役立ちます。これは、ユーザー入力を user_input 変数に保存するだけです。その後、有効性を確認できます。
テキスト、テキストエリア、隠しフィールド
は非常に単純です:
[code] user_input = document.forms[0].text.value
ここで、text はテキスト ボックス、テキストエリア、または非表示です。フィールド名。 value 属性はこれらの要素のテキストを与え、user_input に保存されます。
直接書くこともできます:

コードをコピーします コードは次のとおりです:
ドキュメント。 forms[0].text.value = '新しい値';
ボックスを選択
これも非常に簡単です:

🎜> コードは次のとおりです: user_input = document.forms[0].select.value;
選択した項目を変更するには、selectedIndex を変更する必要があります。例:


コードをコピー コードは次のとおりです: document.forms[0].select .selectedIndex = 2;
3 番目のオプションが選択されました。
古いブラウザ
古いブラウザでは、選択ボックスに value 属性がありません。
コードをコピーコードは次のとおりです:

var selectBox = document.forms[0].select;
user_input = selectBox.options[selectBox.selectedIndex].value

最初に検索 ユーザーが選択した項目が表示されます。 document.forms[0].select.selectedIndex は、選択された項目の番号を示します。 JavaScript は、すべての選択ボックスを含むオプション配列を作成しました。したがって、この配列を通じてユーザーが何を選択したかを知ることができ、それを user_input に保存できます。
チェックボックス
チェックボックスは少し異なります。その値はすでにわかっていますが、ユーザーがそれを選択したかどうかを知る必要があります。チェックされた属性がそれを教えてくれます。 true と false の 2 つの値があります。
次に:
コードをコピーします コードは次のとおりです:

if (document .forms[0 ].checkbox.checked) {
user_input = document.forms[0].checkbox.name
}

checkbox はチェックボックスの名前です。チェックボックスが選択されている場合、名前 (またはオプションで値) を取得し、それを user_input に渡します。
チェックボックスを選択すると、次のことができます:
コードをコピー コードは次のとおりです:
document.forms[ 0 ].checkbox.checked = true

ラジオ ボックス
残念ながら、どのラジオ ボックスがチェックされているかを一度に確認することはできません。トラバース後には、checked 属性が true であるアイテムのみを見つけることができます。
コードをコピー コードは次のとおりです。

for (i=0;iif (document.forms[0].radios[i].checked) {
user_input = document.forms[0].radios[i]. value;
}
}

radios は、このラジオ ボタンのグループの名前です。
document.forms[0].radios はすべてのラジオ ボタン ボックスを含む配列であり、ループによって、checked 属性が true かどうかがチェックされることに注意してください。その場合は、user_input を渡します。
document.forms[0].radios.length は、すべてのラジオ ボタン ボックスの数を返します。
ラジオ ボタンが選択されている場合、チェックされた値を true に設定できます:
コードをコピー コードは次のとおりです。 :
document.forms[0].radios[i].checked = true;

翻訳アドレス: http://www.quirksmode.org/js/forms.html
転載 以下の情報をお守りください
著者: Beiyu (tw:@rehawk)
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
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デバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの進化:現在の傾向と将来の見通しJavaScriptの進化:現在の傾向と将来の見通しApr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

javascriptの分解:それが何をするのか、なぜそれが重要なのかjavascriptの分解:それが何をするのか、なぜそれが重要なのかApr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

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

ホットツール

DVWA

DVWA

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

EditPlus 中国語クラック版

EditPlus 中国語クラック版

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。