input タグで同名のものを複数設定した場合にJavaScriptで扱うには?

[上に] [前に] [次に]
1998/10/14(水) 11:39:34
<input type="text" name="Name" value="">
という行をhtmlファイルの中に複数書いています。
(このようにしているのはASPで処理を楽にするという事情のためです。)

このときJavaScriptを使ってテキストボックスすべてに何も書き込まれていない場合には少なくとも一つの
テキストボックスに値を書き込ませるような警告を表示させたいのです。

WinNT4.0(SP3)+IE3.02ではlengthプロパティで
簡単にできるのですが,NNではうまくできません。

どなたかご存知の方,この配列の扱い方について
教えてください。

それとも,そもそも
「<input type="text" name="Name" value="">
という行をhtmlファイルの中に複数書いています。」
ということがおかしなことなのでしょうか。

とーりすがーり 1998/10/14(水) 20:04:31
エレメントが多いとちょっとカッコ悪いですが、
投稿のボタン(リンク)でonsubmit か onclickを指定し、
そのファンクションに(この場合ですと)
if(document.Name..value == "") {
  alert("値を書き込んで下さい!");  return false;
}
これを重ねていく方法があります。

とーりすがーり 1998/10/14(水) 20:05:11
↑訂正
if(document.Name.部品.value == "") {

PTAN [E-Mail] [HomePage] 1998/10/15(木) 12:43:08
的外れかもしれませんが、こんな感じでどないでしょう。

function check(){
  var str = "";
  for(i = 0; document.form.elements.length > i; i++) {
    if(document.form.elements[i].name == "Name")
      str += document.form.elements[i].value;
  }
  if (str == ""){
    alert("値を書き込んで下さい!");
    return false;
  }
  return true;
}

babyA 1998/10/15(木) 15:10:53
関係無いかもしれませんけど以前にNNで
inputタグのname属性にnameという名前をつけると
JavaScriptが正常に動作しないことがありました

Tiot 1998/10/15(木) 18:03:16
これも関係ないかも知れませんが、
IEでフォームとその中のエレメントに同じ名前(name)をつけると
JavaScriptのエラーが出てしまったことがあります。

PTAN [E-Mail] [HomePage] 1998/10/15(木) 18:45:59
これまた、全然関係ありませんが、
IE3(4は不明)で、関数名を「submitForm」にすると、
JScriptのエラーになります。

匿名希望 1998/10/19(月) 14:34:54
babyAさんが書いた件ですけど、
document.フォーム名.name と書くとフォームの名前(<FORM NAME="abc">)を指すので
INPUTの部品のつもりで document.フォーム名.name.value = 値; と書くと
おかしくなってしまうんでしょうね。

[上に] [前に] [次に]