2012-03-27 7 views
2

、この行は少しは私には奇妙です:フォームのJavaScript処理、この配列表記法はどのように機能しますか?次のコードで

var x=document.forms["myForm"]["fname"].value; 

Webページ:

<html> 
<head> 
<script type="text/javascript"> 
function validateForm() 
{ 
var x=document.forms["myForm"]["fname"].value; 
if (x==null || x=="") 
    { 
    alert("First name must be filled out"); 
    return false; 
    } 
} 
</script> 
</head> 

<body> 

<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post"> 

First name: <input type="text" name="fname"> 
<input type="submit" value="Submit"> 
</form> 

</body> 

</html> 

どのように動作しますか?多次元配列はどこですか?おかげ

答えて

1

この:実際には、それはそれがあるように書かれるため(この場合は)何の理由は本当にありません

var x = document.forms.myForm.fname.value; 

var x=document.forms["myForm"]["fname"].value; 

は全く同じです。 計算又は名前をフェッチすることをいくつかの動的メカニズムがあった—これらの2つの文字列定数—「あるmyForm」と「FNAME」の代わり場合今

、その後、最初のフォームは理にかなっています。 [ ]演算子を使用すると、式を評価してアクセスするプロパティ名を判別できます。

この例にはまったく関係のない配列はありません。単にプロパティの参照をオブジェクト化します。

+0

ああ私は今参照してください!本当にありがとうPointy! – Coffee

1

document.forms objectは、数値インデックス(ゼロベース)または「名前」属性としてプロパティを検索することによって、ドキュメント内のすべてのフォームを識別するインターフェイスを持つため、特別です。

また、form objectには、入力要素(および他のフォームウィジェット)をその名前でプロパティとして参照できる同様の機能があります。

+0

ありがとう、Maerics!私はMozillaのリファレンスを勉強しています。とても参考になります。 – Coffee

関連する問題