- ベストアンサー
(ホームページ)フォームを使ったパスワード認証について
<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=入力した内容”と表示されてページに飛ぶことができません。都合上エンターでも正常に動作するように改善したいのですが、どのようにしたらいいでしょうか? ご存知の方、教えてください。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#3のお礼欄に書いていただいたソースをコピーしてテストしましたが、やはり問題なしでした。 出ているエラーはjavascriptのものですね。 考えられることとして、同じHTML上に同じ名前のフォームは存在してないでしょうか? 例えば#3のソースの後ろに、 <form name="ok"></form> と書き足すだけで同じエラーが発生します。 今までトライ&エラーで色々やってきたので、#1さんや#2のソースがそのまま同一HTML上に残っているような気がするんですが、それだとエラーになります。 一度、新規HTMLを作成し、#3のソースのみをコピーして試してみてください。
その他の回答 (3)
- ntm98
- ベストアンサー率26% (73/273)
#2です。 できなかったということなので、もう一度私の環境(IE6.0)で実験してみましたが、「aaa」という文字でEnterまたはボタンを押すと、http://*アドレス*/aaa.htmlに移動できましたよ。 もう一度、#2のコードの<form>~</form>を全てコピーして試してみてください。 <form>のactionがonSubmitになっていると、pass=***となってしまいます。
お礼
まっさらに直して再びコピーアンドペーストしてみましたが、やはりダメでした。環境は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)
<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> ----------------- これでどうでしょうか?
お礼
回答ありがとうございました。 こちらもやってみたのですが、エンターキー同様マウスでも作動しなくなってしまいました。(^^; ?pass=***の表示になってしまいます。;
- Blackwingls
- ベストアンサー率44% (138/313)
こんばんわぁ、Blackwinglsです。 form を使っているので、onSubmit されたら、 POST か GET されちゃうんでしょうね。 あまりカッコとくないですが、 <form name="ok" onSubmit="location.href='http://*アドレス*/'+document.ok.pass.value+'.html';"> とされてみては如何ですか? ではでは~☆ミ
お礼
回答ありがとうございました。 早速やってみたのですが、どういう風にそのタグをつかっていいのかよくわかりませんでした。(^^; そのまま貼り付けても何も表示されませんし、前のタグのonclickをonSubmitに変えても何も起きませんでした。この場合だとテキストボックスはどこへいってしまうのでしょう??
お礼
試行錯誤を繰り返してようやく原因がわかりました。同じHTML上にはいくら探しても同じ名前のフォームはなかったのですが、オフラインでやってうまくいくのにオンラインでいかないのはどういうことかと思ったところ、SSIを使って呼び出していた別のHTMLで同じ名前のフォームを使っていました。; 名前を別の名前に変更して、無事解決しました。度々ありがとうございました。