Namazu-devel-ja(旧)


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

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



竹迫です。

"Tadamasa Teranishi" <yw3t-trns@xxxxxxxxxxxxxxx> wrote:
> > 検索式の入力欄で、Enter(改行)キーを押した場合は、"search=Search%21"
> > というクエリー文字列は、namazu.cgi に渡りませんし、確か lynx では、
> > <input type="submit" の name 属性の値は、無視されたと思います。
> 
> えっ。それはそれで問題なような気がしますが。実害はないだろうけど。

ここで気になるところは、<input type="submit" の name=value のペアが
CGI のクエリー文字列に引き渡されるという動作は、実は規格上では定義
されていなくて、ブラウザの実装依存になっているのが現状なのでは
ないかという点です。

確かに、現状の namazu.cgi の作りでは、クエリー中の search 変数の値に
検索動作が影響しないようになっているので、実害はないと思います。

> > そもそも namazu.cgi では、クエリー中の search 変数の値を無視している
> > のにもかかわらず、わざわざ <input type="submit" に name 属性を指定
> > している理由がわかりません。
> 
> 単に他の INPUT タグと同様な扱いをしているだけではないかと推測します。

日本の主要な Web 検索エンジンについて調べてみましたが、
submit ボタンに name 属性が定義されていないサイトとして、

(1) Yahoo Japan <http://www.yahoo.co.jp/>
   <INPUT type=submit value=検索>

(2) Excite Japan <http://www.excite.co.jp/>
   <input type=submit value="検索">

があり、
submit ボタンに name 属性が定義されているサイトとして、

(3) NTT-X goo <http://www.goo.ne.jp/>
   <input type="submit" value="検索" name="act.dsearch">

(4) インフォシーク <http://www.infoseek.co.jp> 
   <INPUT TYPE="SUBMIT" VALUE=" 検索 " NAME="SUBMIT">

がありました。

あと、押されるボタンによって検索処理を切り分けているサイトとして、

(5) Google <http://www.google.com/intl/ja/>
   <input name=btnG type=submit value="Google 検索">
   <input name=btnI type=submit value="I'm Feeling Lucky">

(6) フレッシュアイ <http://search.fresheye.com/?kw=namazu>
   <INPUT TYPE=HIDDEN VALUE=monthly NAME=term>
   <INPUT TYPE=SUBMIT VALUE="検索" onClick=search2.term.value='monthly'>
   <INPUT TYPE=SUBMIT VALUE="新着" onClick=search2.term.value='weekly'> 

がありました。

特に (6) に関しては、極端ですが、そうまでして submit ボタンに name を
定義したくないのか〜と思ってしまいました。

> > > 3. <input type="submit" の name 属性の値に JavaScript の予約語(?) で
> > >    ある "submit" を使うのは適切ではない.
> > 
> > HTML4.01 Strict の DTD 上では、input タグの name 属性の値として
> > CDATA が入っていれば文法上問題ないと言えますが、
> ...
> > name="submit" 以外にも、name="name" や name="value" といった値を設定
> > してしまうと、似たような問題が生じる可能性があると思います。
> 
> これは起こります。
> まぁ、文法がいい加減なので、そちらの問題かなと思います。

確かに、これは JavaScript の文法上の問題のような気がします。

> > 特に反対意見がなければ、NMZ.head* ファイルの以下の記述を
> > 
> > <input type="submit" name="submit" value="Search!">
> >  ↓
> > <input type="submit" value="Search!">
> > 
> > のように変更しようと思いますが、何か問題がありますでしょうか?
> 
> namazu.cgi 側で、submit の処理を何もしていないのであれば、問題
> ないのではないでしょうか。

ということで、特に反対意見がないようでしたら、
今日のお昼にでも以下の修正を CVS に commit しようと思います。

----------------------------------------------------------------
diff -C0 -urN templete.orig/NMZ.head templete/NMZ.head
--- templete.orig/NMZ.head      Wed Jul  4 18:58:06 2001
+++ templete/NMZ.head   Wed Sep 12 09:50:10 2001
@@ -39 +39 @@
-<input type="submit" name="submit" value="Search!">
+<input type="submit" value="Search!">
diff -C0 -urN templete.orig/NMZ.head.es templete/NMZ.head.es
--- templete.orig/NMZ.head.es   Wed Jul  4 18:58:06 2001
+++ templete/NMZ.head.es        Wed Sep 12 09:50:10 2001
@@ -39 +39 @@
-<input type="submit" name="submit" value="Buscar!">
+<input type="submit" value="Buscar!">
diff -C0 -urN templete.orig/NMZ.head.fr templete/NMZ.head.fr
--- templete.orig/NMZ.head.fr   Wed Jul  4 18:58:06 2001
+++ templete/NMZ.head.fr        Wed Sep 12 09:50:10 2001
@@ -39 +39 @@
-<input type="submit" name="submit" value="Rechercher !">
+<input type="submit" value="Rechercher !">
diff -C0 -urN templete.orig/NMZ.head.ja templete/NMZ.head.ja
--- templete.orig/NMZ.head.ja   Wed Jul  4 18:58:06 2001
+++ templete/NMZ.head.ja        Wed Sep 12 09:50:10 2001
@@ -39 +39 @@
-<input type="submit" name="submit" value="Search!">
+<input type="submit" value="Search!">
----------------------------------------------------------------

Namazu そのものからちょっと外れた話になってしまいましたが、
お付き合いいただき、どうもありがとうございました。

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