为什么我的preventDefault无法在Chrome浏览器jquery中运行?

时间:2015-05-12 05:47:34

标签: javascript jquery html google-chrome

看看我的代码,如果你使用了chrome,你会注意到当我按下Enter键时,preventDefault不起作用,但在firefox和safari中工作,为什么?



var fighting_textarea=$('#fighting');
			
			fighting_textarea.on( "keydown", function( event ) {
				if ( event.which == 13 ) {
				    event.preventDefault();
					alert('hello');
				}
				
			});//click
	  

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="fighting"> </textarea>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

它工作正常,你只需要删除警报(我想这不是必需的)。 还有一件事你也应该考虑代码10,b'coz on iphone safari会给出代码10。

var fighting_textarea=$('#fighting');
			
			fighting_textarea.on( "keydown", function( event ) {
				if ( event.keyCode == 10 || event.keyCode == 13 ) {
				    event.preventDefault();
					
				}
				
			});//click
	  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="fighting"> </textarea>

答案 1 :(得分:1)

您可以使用keydown代替var fighting_textarea = $('#fighting'); fighting_textarea.on("keypress", function (event) { if (event.which == 13) { event.preventDefault(); alert('hello'); } }); //click

DateTime

另请查看此answer

还注意到,如果你删除警报,一切似乎都没问题,至于为什么不幸我不知道。