• ベストアンサー

(ホームページ)フォームを使ったパスワード認証について

<form name="ok"> <input type="text" size="20" name="pass"><input type="button" value="検索" onclick="location.href='http://*アドレス*/'+document.ok.pass.value+'.html';"> </form> このフォームをつかってパスワード認証を使っているのですが、マウスをつかって「ok」ボタンをクリックしたときは正常に動作するにもかかわらず、入力後エンターで認証しようとすると、アドレスに”http://*アドレス*/?pass=入力した内容”と表示されてページに飛ぶことができません。都合上エンターでも正常に動作するように改善したいのですが、どのようにしたらいいでしょうか? ご存知の方、教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ntm98
  • ベストアンサー率26% (73/273)
回答No.4

#3のお礼欄に書いていただいたソースをコピーしてテストしましたが、やはり問題なしでした。 出ているエラーはjavascriptのものですね。 考えられることとして、同じHTML上に同じ名前のフォームは存在してないでしょうか? 例えば#3のソースの後ろに、 <form name="ok"></form> と書き足すだけで同じエラーが発生します。 今までトライ&エラーで色々やってきたので、#1さんや#2のソースがそのまま同一HTML上に残っているような気がするんですが、それだとエラーになります。 一度、新規HTMLを作成し、#3のソースのみをコピーして試してみてください。

DZmas
質問者

お礼

試行錯誤を繰り返してようやく原因がわかりました。同じHTML上にはいくら探しても同じ名前のフォームはなかったのですが、オフラインでやってうまくいくのにオンラインでいかないのはどういうことかと思ったところ、SSIを使って呼び出していた別のHTMLで同じ名前のフォームを使っていました。; 名前を別の名前に変更して、無事解決しました。度々ありがとうございました。

その他の回答 (3)

  • ntm98
  • ベストアンサー率26% (73/273)
回答No.3

#2です。 できなかったということなので、もう一度私の環境(IE6.0)で実験してみましたが、「aaa」という文字でEnterまたはボタンを押すと、http://*アドレス*/aaa.htmlに移動できましたよ。 もう一度、#2のコードの<form>~</form>を全てコピーして試してみてください。 <form>のactionがonSubmitになっていると、pass=***となってしまいます。

DZmas
質問者

お礼

まっさらに直して再びコピーアンドペーストしてみましたが、やはりダメでした。環境はIE6.0です。javascriptのエラーでしょうか、「'document.ok.pass.value'はNULLまたはオブジェクトではありません」と表示されてしまいます。; 検索のためのテキストボックスの前後はこんなふうにテーブルで囲んであるのですが、何か関係はあるのでしょうか? <table border="0" cellpadding="0" cellspacing="0" width="160"> <tr> <td> <form name="ok" action="javascript:location.href='http://*アドレス*/'+document.ok.pass.value+'.html'; "> <input type="text" size="20" name="pass"> <input type="submit" value="検索"> </form> </td> </tr> </table>

  • ntm98
  • ベストアンサー率26% (73/273)
回答No.2

<form name="ok" action="javascript:location.href='http://*アドレス*/'+document.ok.pass.value+'.html'; "> <input type="text" size="20" name="pass"> <input type="submit" value="検索"> </form> ----------------- これでどうでしょうか?

DZmas
質問者

お礼

回答ありがとうございました。 こちらもやってみたのですが、エンターキー同様マウスでも作動しなくなってしまいました。(^^; ?pass=***の表示になってしまいます。;

回答No.1

こんばんわぁ、Blackwinglsです。 form を使っているので、onSubmit されたら、 POST か GET されちゃうんでしょうね。 あまりカッコとくないですが、 <form name="ok" onSubmit="location.href='http://*アドレス*/'+document.ok.pass.value+'.html';"> とされてみては如何ですか? ではでは~☆ミ

DZmas
質問者

お礼

回答ありがとうございました。 早速やってみたのですが、どういう風にそのタグをつかっていいのかよくわかりませんでした。(^^; そのまま貼り付けても何も表示されませんし、前のタグのonclickをonSubmitに変えても何も起きませんでした。この場合だとテキストボックスはどこへいってしまうのでしょう??

関連するQ&A