防止在IE7中按回车键时出现默认值
prevent default on enter keypress in IE7
我正在解决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();
});
它有效,但看起来很脏。问题是:你能为这个问题提出更好的解决方案吗?
提前谢谢。
如果只是为了防止在回车键上提交表单,请在表单尝试提交时在按键上进行测试。。。
$(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;
});
这不是脏的。但如果你想要一条线,你仍然可以使用:
ev.keyCode == 13 && ev.target.type != "textarea" && ev.preventDefault();
一个更优雅的解决方案是使用jQuery的提交处理程序并返回false:
$('#myForm').submit(function(ev){
// custom form handling code here
return false;// prevent browser default form submission
});
或者,您也可以对事件对象调用.preventDefault()
,并将其传递给提交处理程序。
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 如果值为空,如何设置输入的默认值?jQuery
- 骨干模型默认值-todos.js示例中不必要的代码
- jquery日期选择器年份范围默认值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 根据两个下拉列表的默认值禁用按钮
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- Angularjs-设置不带ng选项的select的默认值
- jQuery Datepicker从日期开始设置默认值
- 如何设置浏览器打开的文件对话框的文件名(一些默认值)
- JQuery BlockUI鼠标加载光标没有't在Google Chrome中返回默认值
- Selectize选择默认值
- 在KeystoneJS中为Types.Money设置默认值
- 是否可以同时为一个元素的所有事件指定阻止默认值
- 防止在IE7中按回车键时出现默认值
- 如何覆盖jqGrid's语言默认值
- 如何为显示jquery滑块值的文本框设置默认值
- 当数组在angularjs中没有可比较的值时,如何分配默认值
- 在Bootstrap下拉菜单中设置默认值