各フォームの検出項目が異なるため、汎用コードを与えることはできません。この章で紹介した要素を使用して独自の検出関数を構築する必要があります。次のページに例を示しますので、ご参照ください。
この章では、まず JavaScript を使用してフォームを検出する場合の制限について説明し、次に送信時ハンドラーについて説明し、次にフォーム自体のメソッドとプロパティについて説明します。最後はフォーム要素にアクセスする方法です。
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]
[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 = '新しい値';
ボックスを選択
これも非常に簡単です:
選択した項目を変更するには、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)