Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: JavaScript でのフォーム送信に関しての質問



竹迫です。

# namazu-devel-ja にも話題を振ります。

From: "Haruhide Akiduki" <akizuki@xxxxxxxxxxxxxx>
Sent: Tuesday, September 11, 2001 6:45 PM
Subject: [namazu-users-ja] JavaScript でのフォーム送信に関しての質問
> うと考えました。しかし、以下のようにNMZ.head.jaを書き換えると、「オブジェ
> クトでサポートされていないプロパティまたはメソッドです」といったエラーが
> 出てしまいました。どうか解決策を考えてはいただけないでしょうか。

いくつか気になる点がありましたので、投稿させていただきます。
ちょっと細かくて厳しい意見になってしまいますが、
あまり気を悪くされないようにして下さいね。(^^;

> 書き換えたNMZ.head.ja:
> <html>

→まず、最初に DOCTYPE 宣言がありません。
実際の現場で HTML4.01 Strict に準拠することが難しい場合でも、

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

として、一度 HTML 文法チェッカにかけてみることをお勧めします。

> <title>Namazu a full text retrieval search system</title>
> </head>

→ここに <body> タグが抜けていますね。

> <center><h1>syslabメーリングリスト全文検索システム</h1></center>
> <h6><p ALIGN=center>

→あと、ここに <h6> タグを記述するのは好ましくありません。
書くとしても、</h6> の閉じタグが必要です。

> <form name="form1" method="get" action="namazu.cgi">

→細かいことですが、通常の Web サーバでは、英小文字の get メソッドを
受け付けませんので、method="GET" とした方がよいと思います。
もちろん、これは Webブラウザ側で吸収されるべき問題なのですが、
古いブラウザや開発途上の組み込み系ブラウザなどではうまく動かない
ことがあります。

> <input type="submit" name="submit" value="Search!">

→寺西さんや佐久間さんも指摘されていますが、name 属性値に "submit" が
入っているのは、まずいと思います。

自分でカスタマイズするときは、これも含めて変更するのが前提ですが、
今回の場合は Namazu に付属している NMZ.head* のテンプレートの記述が
デフォルトでそのようになっているので、秋月さんだけに非があるとは
言えないのはないかと思います。

ここは、単純に、上の行を

<input type="submit" value="Search!">

に変更すれば解決すると思います。

なお、

From: "Tadamasa Teranishi" <yw3t-trns@xxxxxxxxxxxxxxx>
Sent: Tuesday, September 11, 2001 7:34 PM
> ここを
> <input type="submit" name="submit1" value="Search!">
> とでも書き換えれば良いようです。

という変更をした場合、namazu.cgi は submit1 というクエリー変数の
入力を想定していないので、Web サーバの error_log に、

namazu: unknown cgi var: submit1=Search!

というエラーメッセージが、検索時に出力されることがありますので、
ご注意ください。

以下、namazu-devel-ja 向けの話しになります。

----------------------------------------------------------------------
Namazu に付属している NMZ.head* ファイルのテンプレートに書かれている
HTMLによる検索ボタン(Search!) の記述が以下のようになっていますが、

<input type="submit" name="submit" value="Search!">
 ↓
<input type="submit" value="Search!">

と変更したほうがよいのではないでしょうか?
----------------------------------------------------------------------

理由としては、

1. 今回のような JavaScript を用いたテンプレートのカスタマイズに関する
   質問が FAQ になることを防ぐ意味合いと、

2. namazu.cgi が、押されたボタンによって処理を切り分けることをしない
   限りは、<input type="submit" に name 属性をつけることが冗長である.

3. <input type="submit" の name 属性の値に JavaScript の予約語(?) で
   ある "submit" を使うのは適切ではない.

という主張です。

ご意見がありましたら、よろしくお願いいたします。

--
  広島市立大学 情報科学部 情報機械システム工学科 知能ロボット講座
     竹迫 良範 <takesako@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>