- 締切済み
NetScapeで、テキストボックス内でのEnterキー押下で、データチェック用関数を無視してすぐに次の画面へ遷移してしまう
OS Windows2000、ブラウザ NetScape6.2&4.75を使用しています。また、<SCRIPT LANGUAGE="JavaScript">を使用するよう指定されています。 お伺いしたいのですが、 JavaScriptで禁則文字をはじくなど、テキストボックスに修正入力されたデータのチェックをする関数『function DataCheck()』をつくり、INPUT TYPE="submit"の確認ボタンでonClick="return DataCheck()"としています。return値は、データチェックの結果、OKならばtrue、チェックにひっかかるとfalseを返し、falseの場合はアラートで注意を促し、次画面には遷移させません。で、IEではテキストボックス内にカーソルを当ててENTERキーを押すと、onClick="return DataCheck()"を拾ってくれて、チェックにひっかかると次画面には遷移させませんが、今回実装しなければいけないNetScape4.75と6.2では、テキストボックス内にカーソルを当ててENTERキーを押すとonClick="return DataCheck()"をひろってくれません。なお、その画面には、確認ボタンのほかに、戻るボタンとリセットボタンもあり、戻るボタンもリセットボタンもINPUT TYPE="submit"のため(←前画面に戻る場合も、デフォルト表示にリセットする場合も、該当画面を表示させる為に再検索して表示させる仕様です。)、FORMタグ内にonSubmit="return DataCheck()"としてもリセットボタンや戻るボタンでもデータチェックをしてしまいます。なので、Enterキー押下でデータチェック関数を拾ってくれたとしてもひどいことに。。。どなたか、よい知恵をください。お願い申し上げます。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- wolfwood
- ベストアンサー率50% (199/398)
EnterキーでのonClickが効かないのは仕様のようです。 IEでは複数のテキストボックスがある場合有効のようです。 onSubmitの方を使えば良いと思います。 >戻るボタンもリセットボタンもINPUT TYPE="submit"のため(←前画面に戻る場合も、デフォルト表示にリセットする場合も、該当画面を表示させる為に再検索して表示させる仕様です。 えっと、意味が少し分からないのですがTYPE="button"を使わないということは確認ボタン押下時と同じデータが必要と言うことですか? 戻る・リセットボタンにonClickで遷移先や処理を設定しているのでしょうか? その場合、まず共通の変数を用意して各ボタンの押下時に変数に特定の値(フラグ)を設定して、データチェック時にその値を判定し戻る・リセットボタンのものだったら処理をスキップすればチェックされないと思います。 例) <SCRIPT LANGUAGE="JavaScript"> //ボタン判定フラグ var flg=0; function back_b(){ flg=1; } function reset_b(){ flg=1; } function DataCheck(){ if(flg==0){ //データチェック } } </SCRIPT> ・ ・ ・ <INPUT type="submit" value="確認"> <INPUT type="submit" value="戻る" onClick="back_b()"> <INPUT type="submit" value="リセット" onClick="reset_b()">