Netscape4.5&4.7でTEXTAREAのフォーム内文字消去の方法は?(JavaScript)

[上に] [前に] [次に]
タナハシ [E-Mail] 1999/11/26(金) 19:11:59
数日前に、「別フレームのフォーム内容を消去するには?(JavaScript)」という
似たような質問をしましたタナハシと申します。

別フレームからの呼び出しには成功しましたが別件でうまく行かない事が
ありましたので、再び質問させていただきます。
(別フレームからの呼び出しとは関係ないので、元になったスクリプトで説明します)

<!--
function clearform()
{
self.document.send.resp.value = "";
self.document.send.guest_pw.value = "";
self.document.send.mtitle.value = "";
self.document.send.comments.value = "";
self.document.send.comments.focus();
}
// -->

これが、Netscape4.0xと、3.0xでは無事に全部消えるのですが、
4.5及び4.7で試したところ、commentsのフォームだけが消えません。

消える部分はすべて、<INPUT TYPE="TEXT">で、消えないcommentsだけが
<TEXTAREA></TEXTAREA>です。
これを、たとえば、
self.document.send.comments.reset();とすると、
3.0xでは「Window.Document.Form.Input.reset is not a function.」
というダイアログが出てしまい、
4.0x 及び 4.xでは「JavaScript error: Type 'javascript:' into Location for details」
というメッセージがウインドウの下に出て、うまく動きません。

4.5や4.7で、このTEXTAREAのフォーム内容を消去するには、どうしたら良いのでしょうか。
ご教授願えましたら幸いです。
ちなみに、このfunctionの呼び出しは、オフラインの自分のHD上で実験しており、
別フレームをMetaタグで、5秒ごとにリロードさせて、BODYタグに
onLoad="parent.fr1.clearform();"と書いて、fr1のclearformを呼び出しています。

Nobu3 1999/11/27(土) 02:10:47
リセットはフォームに対するメソッドです。
だから、「send」フォームに対して「reset()」してください。
self.document.send.reset();

「JavaScript error: Type 'javascript:' into Location for details」
は、
「場所」(IEでいう「アドレス」)に「javascript:」と入力する(もちろん最後は改行)とエラーの詳細が見れる。
と書かれています。

で、最初の問題は・・・わかりません。

タナハシ [E-Mail] 1999/11/28(日) 12:17:59
[[解決]]
お返事が遅くなってすみません。

self.document.send.reset();というのは、
NAME=sendのフォームを一括してリセットするのですね。
消さなくても良い所は残したかったのですが、(名前など)
個別に消す方法では、どうしてもNN4.5&4.7でTEXTAREAが消えないので、
あきらめて、上記の方法で一括消去をする事にしました。

いろんなバージョンでチェックをしなくてはいけないので、
今、わが家のパソコンのHD内には、ブラウザが7個あります(苦笑)
同じように動いてくれないというのは(しかも、下位のバージョンで動いているものが
上位バージョンで動かなくなるというのは…)困ったものです。

解決…と言えるかどうかわかりませんが、
私からの質問としましては、この議題は終わりとさせていただきます。
ありがとうございましたm(_ _)m

無責任官庁 1999/11/29(月) 16:27:08
既に解決されてるのでアレですけど・・・

> 消さなくても良い所は残したかったのですが、(名前など)

別に諦めなくても・・・
reset() する前に内容を変数に保存しておき、
全部消したあとに必要なものだけ戻したらいいんですよね?

> 下位のバージョンで動いているものが上位バージョンで動かなくなるというのは

これは、予約語にぶちあたってる可能性ありです。
例えば“send”ですが、これがver4.5に追加された新しい命令だったら?
TEXTAREA のオブジェクトにだけあるメゾットだったら?
(あくまで例です。実際にはそんなの無いと思いますけど・・・)
というわけで、名称に小文字の英単語そのまま入れるのはオススメできません。
NAME とか変数名には大文字を混ぜたり単語を組み合わせたり
工夫して命名しましょう。

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