我有一个只接受数字的文本字段。当用户键入任何字符并移出textfield
时,
使用onchange我正在检查用户是否输入了数字或字符。因此,当用户按Tab键时,使用onchange检查值。
当用户按下Enter按钮时,它被设置为window.event.keycode =9;
,因为IE支持此功能。要使其在其他浏览器中工作,
每当用户按下回车按钮时,我都会编写逻辑来移动焦点。
我面临的问题是在Firefox中,当用户按下文本字段中的输入按钮时,现在调用onchange
以及调用onsubmit,这使我的页面再次刷新。
我写的将焦点转移到下一个项目的逻辑也在起作用。但我不知道为什么,onchange
和onsubmit
被调用。
这个项目由大量代码组成,这就是为什么我无法发布一段代码。
知道它为什么会这样工作吗?
答案 0 :(得分:0)
某些浏览器具有全局事件对象,其他浏览器将事件对象作为参数发送到事件处理程序。 Chrome和Internet Exlporer使用前者,Firefox使用后者。
有些浏览器使用keyCode,其他浏览器使用charCode。
输入密钥代码为13
答案 1 :(得分:0)
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