我正在使用IE7中的默认提交按钮解决问题。当我在输入字段中按“输入”键时,单击页面上的某个按钮。所以我找到了解决方案:
$(document).bind("keypress", function(ev) {
ev.keyCode == 13 && ev.preventDefault();
});
但是这个代码存在问题:textarea标签没有得到“新行”。所以我尝试了这个:
$(document).bind("keypress", function(ev) {
if (ev.keyCode == 13 && ev.target.type != "textarea")
ev.preventDefault();
});
它有效,但看起来很脏。问题是:你能为这个问题提出更好的解决方案吗?
提前谢谢。
答案 0 :(得分:5)
如果只是为了阻止输入按键上的表单提交,请在表单尝试提交时在按键上进行测试......
$(your_form).submit(function(ev){
if (ev.keyCode == 13){
// Prevent form submission behaviors if the event was fired by enter keypress
ev.preventDefault();return false;
}
// And code for form submission here, or just keep the return true to make it behave normally.
return true;
});
答案 1 :(得分:0)
这不脏。但是如果你想要一行,你仍然可以:
ev.keyCode == 13 && ev.target.type != "textarea" && ev.preventDefault();
答案 2 :(得分:0)
更优雅的解决方案是使用jQuery's submit handler并返回false:
$('#myForm').submit(function(ev){
// custom form handling code here
return false;// prevent browser default form submission
});
或者,您也可以在事件对象上调用.preventDefault()
,并传入提交处理程序。