htmlのformがエンターキーでsubmitされることを防ぐため、以下の様なコードを書きました。
javascript
1$(function(){ 2 $('input').keydown(function(e) { 3 if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) { 4 return false; 5 } else { 6 return true; 7 } 8 }); 9 10 $('select').keydown(function(e) { 11 if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) { 12 return false; 13 } else { 14 return true; 15 } 16 }); 17});
しかし、これではselectにフォーカスがあるときにエンターを押すと、submitされてしまいました。
(inputではエンターキーをブロックしました)
一方、以下のようにすると(別々におまじないをかける)
selectでもちゃんとエンターキーの入力をブロックしてくれました。
javascript
1$(function(){ 2 $('input').keydown(function(e) { 3 if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) { 4 return false; 5 } else { 6 return true; 7 } 8 }); 9}); 10 11$(function(){ 12 $(’select').keydown(function(e) { 13 if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) { 14 return false; 15 } else { 16 return true; 17 } 18 }); 19});
なぜこのような事になるのでしょうか?
どちらもコードの意味は同じだと思うのですが、、
ご教授の程よろしくお願いします。
2つ目のコードブロックの部分$(’select')に全角文字が入っていますがtypoでしょうか?
回答2件
あなたの回答
tips
プレビュー