• ベストアンサー
  • 困ってます

IE8で動くログイン画面が、FireFoxでは動かない

  • 質問No.5796936
  • 閲覧数2999
  • ありがとう数3
  • 回答数2

お礼率 89% (81/91)

IE8で動くログイン画面が、FireFoxでは動かない

htmlとJavaScriptを別ファイルに記述し、ログイン画面を作成しております。
このhtmlは、テキストボックスに入力されたIDとPASSWORDを、
login.phpに渡しているだけです。

onmouseoverやonmouseoutは正常に動いておりますので、
JavaScriptがOFFと言うオチではないと考えています。
おそらくsubmitがfirefoxでは正常に動いていないのだと考えられますが、
どうすれば解決できるのか、ご教授くださいませ。

Web開発を始めて日が浅く、基本的な事を質問してしまっているかもしれませんが
何卒よろしくお願いします。

ソースはこのような感じです。
【login.html】(テキストボックスとログインボタン周辺のみ)
<form action="login.php" name="form_login" method="post">
社員ID:<INPUT type="text" size="24" name="id_txtbox">
PassWord:<INPUT type="password" size="20" name="password_txtbox">
<br>

<!--ログインボタン-->
<IMG id="btnlogin"
onmouseover="Onmouseoverlogin();"
onmouseout="Onmouseoutlogin();"
onclick="login(id_txtbox.value,password_txtbox.value);"
img src="images/login.gif" width="130" height="27" border="0"
name="btnlogin">
</form>

【login.js】(login.htmlで使用するJSを記述しています)
// ログインボタンマウスオーバー
function Onmouseoverlogin(){
 document.btnlogin.src='images/login2.gif';
}
// ログインボタンマウスアウト
function Onmouseoutlogin(){
 document.btnlogin.src='images/login.gif';
}
// ログインクリック時
function login(id,pass){
 //チェック等省略します。
 document.form_login.submit();
}

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

  • 回答No.1
  • ベストアンサー
コンテンツの全体がないので確実なことは言えませんが、ログインボタンの4行目
onclick="login(id_txtbox.value,password_txtbox.value);
が間違っています。
文法上、引数にJavaScriptの変数は指定できません。

たまたまIEの場合は正常に動作しているだけでしょう。

ここで引数を渡さないで、関数loginの内部で document.form_login.id_txtbox.valueや document.form_login.password_txtbox.valueを参照しても支障はないかと存じます。
お礼コメント
wendy0303

お礼率 89% (81/91)

i80286さん、お世話になっております。
回答、ありがとうございます。

>引数
う…た、確かにForm内に要素があるのに
引数を渡そうとする必要は何処にもないですね。
そして、事実、引数をなくしたところ、
何の問題もなくSubmitできました。

ありがとうございました。
(他の箇所見るのが怖いです。きっと修正の山…)
投稿日時:2010/04/02 14:38

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 61% (1594/2576)

FFの「ツール」-「エラーコンソール」で見てみればわかりますが、名前指定の引数が識別されていません。

名前.名前方式でなくきちんと指定するか、応急措置としては、以下みたいなのでもいけそう(FF3.5)
onclick="login(this.parentNode.id_txtbox.value,this.parentNode.password_txtbox.value);"

まぁ、#1様がおっしゃるように、function側できちんと取得するほうが、記述としてもきれいになると思いますけど…
 document.forms['form_login'].elements['id_txtbox']
みたいな感じ。
お礼コメント
wendy0303

お礼率 89% (81/91)

fujillinさま、お世話になっております。

>名前方式でなくきちんと指定する
今回問題になっている箇所以外で、どうしても引数を渡したいところがありましたので
この書き方は参考にさせて頂きます。

ありがとうございます。
投稿日時:2010/04/02 14:44
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ