我有一个只接受数字的文本字段。当用户键入任何字符并移出CCD_ 1时,使用onchange,我正在检查用户是否输入了数字或字符。因此,当用户按下tab键时,使用onchange会检查值。当用户按下Enter按钮时,它被设置为window.event.keycode =9;
,因为IE支持这一点。为了使其在其他浏览器中工作,我已经编写了每当用户按下回车按钮时移动焦点的逻辑。
我面临的问题是在Firefox中,当用户按下文本字段中的回车按钮时,现在调用onchange
,同时也调用onsubmit,这使得我的页面再次刷新。我写的将焦点转移到下一项的逻辑也在起作用。但我不知道为什么,onchange
和onsubmit
被调用。这个项目由大量的代码组成,这就是为什么我不能发布一段代码。知道为什么它会这样工作吗?
一些浏览器有一个全局事件对象,另一些则将事件对象作为参数发送到事件处理程序。Chrome和Internet Exlporer使用前者,Firefox使用后者。
一些浏览器使用keyCode,另一些则使用charCode。
输入密钥代码为13
function Numberonly() {
var reg = /^((d{1,8}(.d{0,5})?%)|(d{1,8}(.d{0,5})?))$/;
if (!reg.test(($("#txtunitId").val()))) {
$("#txtunitId").val('');
return false;
}
}
<input type="text" id="txtunitId" style="float: left;" onkeyup="Numberonly();" />
jsfiddle.net/hQ86t/20