问题:文本框输入完成后点击回车页面刷新
问题出在form上,当表单中只有一个文本框的时候获取焦点并点击回车之后会提交表单内容,就会发生刷新事件。
发现问题所在就好解决问题了。
现在有三种解决方案:
1.全局禁用回车事件
function document.onkeydown() {
var e = event.srcElement;
if (event.keyCode == 13) {
return false;
}
}
但是这样会出现想要使用回车又不能用的尴尬用提。
2.单独去掉输入框的回车事件的方法
<input type="text" onkeydown="return ClearSubmit(event)" />
function ClearSubmit(e) {
if (e.keyCode == 13) {
return false;
}
}
这样就不会上面的那种尴尬情况,但是也需要创建一个方法,代码臃肿。
3.增加一个隐藏的输入框
<input id="hiddenText" type="text" style="display:none" />
增加了一个隐藏的输入框之后,表单的文本框不再是唯一的,回车不会触发提交事件。本人喜欢这个。
另外其他表单元素,与文本框单独存在的情况下也可能出现这个问题。如一个表单里只有一个文本框和一个下拉列表此时会发生上述情况。