【发布时间】:2016-04-30 06:14:38
【问题描述】:
在我的应用程序中,我有一个用于搜索项目的文本框。在此文本框中,我希望用户在搜索之前必须输入至少 2 个字符。如果少于 2 个字符,那么我想显示一个简单的警告框,告诉用户输入至少 2 个字符。在我的文本框代码看起来像:
function checkSearchLen(obj, defaultEnterButton) {
if (obj.value == 'Search') obj.value = '';
if (obj.value.length < 2 && event.keyCode == 13) {
event.returnValue = false;
event.cancel = true;
alert('Please ENter at Least 2 Characters');
//return false;
obj.select();
obj.focus();
return false;
} else
doEnterKey(defaultEnterButton);
}
function doEnterKey(s) {
if (event.keyCode == 13) {
event.returnValue = false;
event.cancel = true;
document.getElementById(s).click();
}
}
<input class="searchtext" id="txtSearch" value="Search" onfocus="this.value = '';this.style.color='black';this.style.fontStyle='normal';" onkeydown="checkSearchLen(this,'MenuBar_imgSearchGo');" name="txtSearch" />
在 Internet Explorer 中一切正常,javascript 代码停止等待用户输入,然后继续,返回 false。但是在 chrome 中,警告框会显示它并且它仍然提交表单,几乎就像它没有将 false 返回给元素一样。
【问题讨论】:
-
您没有将事件传递给
doEnterKey。你不会在doEnterKey中返回 false。你应该为此明确写return false;。 -
谢谢,我现在就试试
标签: javascript jquery html asp.net vb.net