アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHPで作成している画面について、テキストコントロールにフォーカスがある場合に、
Enterキーを押下することで、submitが行われることを無効化させたいと思っています。
<SCRIPT LANGUAGE=javascript>
<!--
document.onkeypress = enter;
function enter(){
if( window.event.keyCode == 13 ){
return false;
}
}
//-->
</SCRIPT>
のようなJavaScriptを記述すれば完全にEnterキーを無効にできるようですが、
この状態だと、submitにフォーカスがある状態でEnterキーを押下してもsubmitが実行されません。
この状態を解決する方法をご存知の方、アドバイスをお願いします!!

ちなみにブラウザは最低でも、IE6,7とFireFoxには対応したいと思っています。

当方、HTML,PHP,JavaScriptは素人同然ですので、明確な内容で教えて頂けると助かります。
宜しくお願いします!!

A 回答 (3件)

すみません、気になったのちょっと横槍を失礼……


「テキストコントロールのときだけ」無効ならば以下ですね。

<html>
<head>
<title>テキストがアクティブのときだけエンターきかない</title>
</head>
<body>
<form id="form1" name="form1" action="http://localhost/">
テキストA:<input type="text" name="arrowhead"><BR>
チェック:<input type="checkbox" name="delta"><BR>
テキストB:<input type="text" name="ladylove"><BR>
ラジオ:<input type="radio" name="wavemaster"><BR>
セレクト:<select name="morningglory">
<option>セレクト
</select><BR>
<input type="submit" value="サブミット"><BR>
</form>
</body>
<script type="text/javascript">
<!--
//@cc_on
document./*@if(1) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'keypress', function( evt ) {
 var target = evt./*@if(1) srcElement @else@*/ target /*@end@*/;
 var keyCode = evt./*@if(1) keyCode @else@*/ which /*@end@*/;
 if( /text/i.test( target.type ) && keyCode == 13 ) {
  /*@if(1) evt.returnValue = false; @else@*/ evt.preventDefault( ); /*@end@*/
 }
}, false );
//-->
</script>
</html>

違う部分を探せば分かると思いますが、今後の学習などの参考になればと思い投稿いたしました。
    • good
    • 1
この回答へのお礼

細かい回答ありがとうございました!
無事対応できました!

お礼日時:2009/05/23 17:20

よこやりによこやり。


いとしないときに、まちがって えんた~をたたくと
とんでしまうよ~。なので・・・。ばぶ。
    • good
    • 0

<script type="text/javascript">


<!--
//@cc_on
document./*@if(1) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'keypress', function( evt ) {
 var target = evt./*@if(1) srcElement @else@*/ target /*@end@*/;
 var keyCode = evt./*@if(1) keyCode @else@*/ which /*@end@*/;
 
 if( !/submit/i.test( target.type ) && keyCode == 13 ) {
  /*@if(1) evt.returnValue = false; @else@*/ evt.preventDefault( ); /*@end@*/
 }
}, false );
//-->
</script>
    • good
    • 0
この回答へのお礼

ありがとうございました!
無事対応できました!!

お礼日時:2009/05/23 17:19

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