最近、私は物事をしていたときにラベルタグを使用しました。以前にラベルタグを使用しなかったので、非常に奇妙な問題に遭遇しました。何が問題なのですか?これが効果を見てみましょう
このデモの目的は、ログインボタンをクリックすると、ユーザーが入力したユーザー名とパスワードが合法かを確認することです。合法でない場合、エラーメッセージはユーザー名の入力ボックスの下でプロンプトされます。
エラーメッセージをプロンプトする要素は、ラベルを使用して実装する予定です。
コードを実行してデモページを開き、[ログイン]ボタンをクリックして、どのような変更が発生するかを確認します。 Firefox、Chrome、またはIE9+を使用している場合、[ログイン]ボタンをクリックすると、ユーザー名が間違っていることが促されます。これは望ましい結果です。 IE6、7、8を使用している場合、どのような変更が起こるかを確認するにはどうすればよいですか?現時点では、ページに情報が促されないことがわかりました。開発者ツールを開き、コントロールを確認します。この時点で、プロンプトエラーメッセージScript600:不明なランタイムエラーがわかります。この問題に遭遇したとき、InnerTextとInnerHTMLメソッドの両方を試してみて、そのようなエラーを報告することがわかりました。使用方法は間違っていると思って、w3cschoolに行ってチェックアウトし、Innertextとinnerhtmlをサポートしていないことがわかりました。
このエラーがIE6、7、8でプロンプトするのはなぜですか、Firefox、Chrome、IE9+(他のブラウザーは試していない)が正常に実行されます。慎重な人々は一度に問題を見るかもしれません。ユーザー名エラーを促す要素の場合、ラベルはラベルの代わりにラーブルとして書き込まれ始めます。しかし、当時はこの問題が見つかりませんでした。ラベルタグの使用には問題があるといつも思っていました。 IE6、7、8のJSエンジンが、間違ったラベル名を持つ要素のInnertextおよびInnerHTMLプロパティを操作するときにエラーが発生する理由については、Firefox、Chrome、およびIE9+にエラーはありません。それはあまり明確ではありません。これをよく理解している場合は、説明してください。
この質問は実際には非常に低レベルで、ラベル名を誤って書いています。しかし、私はその時にそれに気づきませんでした。その後、慎重に研究した後、この問題を発見したので、記録します。