IEとFireFoxにてSubmit処理を行う場合



0   名前: MiniDora : 2006/12/25(月) 20:02  ID:DGmmjxNj
はじめまして。

普段IEにて画面の確認などは行っているのですが、FireFoxにて動作しないと指摘されて調査をしているのですがどのようにしたらいいのかよくわかりません。IE、FireFoxにて動作する処理はできたのですが両方で動作させたい場合はどのようにしたらいいのでしょうか?ご存知の方がいらっしゃいましたらぜひご回答お願いいたします。

呼び出し対象のJavaScript
function fnTest(num){
document.form5.id.value=num;
document.form5.submit();
}

IEの場合以下の方法で画面遷移できますがFireFoxにて画面遷移できない
<a href="javascript:#" onClick="javascript:fnTest(1)">TEST</a>

FireFoxの場合以下の方法で画面遷移できますがIEにて画面遷移できない
<a href="javascript:javascript:void(0)" onClick="javascript:fnTest(1)">TEST</a>

以上、よろしくお願いいたします。

1   名前: MiniDora : 2006/12/25(月) 20:02  ID:DGmmjxNj
質問後にもあちこちサイトを検索することにより自己解決しました。
「return false」をつけただけで大丈夫になりました。
<a href="javascript:#" onClick="javascript:fnTest(1); return false">TEST</a>

ただ不思議なのは他にもformが大量にあって自ページを再呼び出しの処理は「return false」をつけずともIE、FireFoxともに普通に動作しているのですが、別ページ呼び出しのところだけがFireFoxの場合別ページに遷移されず、次ページを呼び出してしまっていたようです…。

なぜかはよくわかりませんが無事解決いたしましたのでご連絡いたします。

2   名前: 匿名 : 2006/12/25(月) 20:02  ID:fqUPSjiv
>>0-1
・href 属性の値は URI
・onclick 属性の値はスクリプトデータ

だから、onclick 属性の中に、URI で使用する javascript: スキームを書く必要はないし、書いても当然スキームとは見なされない。デフォルトスクリプト言語が JavaScript なら LabelledStatement になるだけ。

ただし、IE のみ、スクリプトデータの最初の javascript:、vbscript: を言語指定と見なすので、LabelledStatement にならない。

よく分からなければ、「普通、javascript: なんて使わない」と覚えた方がまだマシ。

3   名前: 匿名 : 2006/12/25(月) 20:02  ID:fqUPSjiv
補足。少なくとも

href="javascript:#"


なんて書き方はありえない。エラーが出るはず。また、

onClick="javascript:fnTest(1)" 


これも onclick="fnTest(1)" で良い。仮に IE で多言語が必要でも、もっと良い仕組みが用意されていることが多い(あと、onClick ではなく onclick で覚えた方がマシ)。

確かに >>1 も対症療法の一つなんだが、根本的な原因が残っていることに注意。

一覧へ戻る