プロが教えるわが家の防犯対策術!

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();
}

A 回答 (2件)

コンテンツの全体がないので確実なことは言えませんが、ログインボタンの4行目


onclick="login(id_txtbox.value,password_txtbox.value);
が間違っています。
文法上、引数にJavaScriptの変数は指定できません。

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

ここで引数を渡さないで、関数loginの内部で document.form_login.id_txtbox.valueや document.form_login.password_txtbox.valueを参照しても支障はないかと存じます。
    • good
    • 0
この回答へのお礼

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

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

ありがとうございました。
(他の箇所見るのが怖いです。きっと修正の山…)

お礼日時:2010/04/02 14:38

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



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

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

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

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

ありがとうございます。

お礼日時:2010/04/02 14:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!