- ベストアンサー
javascript submit()の後の動作
- フォームの送信動作は正常に実行されますが、エンターキーを押した際の動作が実行されません
- document.getElementById('ctxt').value= '';が実行されません
- document.forms[txt_submit].submit();の後の部分が実行されるようにするにはどうすれば良いでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>document.forms[txt_submit].submit();の後の部分が実行されるようにするにはどうしたらいいのでしょうか? まずこの部分ですが、 --------------- document.forms[txt_submit].submit(); --------------- ではなく、send()の中で指定しているのと同様、 --------------- document.txt_submit.submit(); --------------- にする必要があると思います。 これにより、ChromeとIE11での動作は手元でも確認できました。 ただ、FireFoxだと「window.event.keyCode」の値が取れないようでエラーになります。 eventをKey_onの関数に渡すやり方はいくつか在るかとは思いますが、簡単な方法としては、 ■HTML --------------- <input type="text" id="ctxt" name="ctxt" size="20" value="" onkeydown="Key_on(event.keyCode)"> --------------- event.keyCodeを引数として渡す。 ■Javascript --------------- function Key_on(keyCode){ if(keyCode == 13){ document.txt_submit.submit(); document.getElementById('ctxt').value= ''; alert('ん?'); } } --------------- keyCodeで受けて判定する。 という形にすれば期待の動作になるかと思うのですがいかがでしょうか・・・? 確認しているブラウザはFireFox
その他の回答 (1)
- hwoa1024
- ベストアンサー率36% (122/336)
submitは画面遷移を伴います。 このソースを見る限り、遷移先はlog.cgiになるので submit()のあとは次の行に行かずにlog.cgiファイルに飛んでしまいます。 動作させるにはsubmit()の前にソースを書くか、 もしくはlog.cgi側にソースを書くしかありません。
お礼
回答ありがとうございました(`・ω・´)
お礼
ありがとうございます 複数のPCとブラウザで確認したところクロームだけ期待の動作をしないという結果になりました。 クロームだけ別の処理をする方向で考えたいと思います