0

我有一个只接受数字的文本字段。当用户键入任何字符并移出时textfield,使用 onchange 我正在检查用户是否输入了数字或字符。因此,当用户按下 tab 时,使用 onchange 会检查该值。当用户按下 Enter 按钮时,它被设置window.event.keycode =9;为 IE 支持。为了让它在其他浏览器中工作,我编写了逻辑来在用户按下回车按钮时移动焦点。

我面临的问题是在 Firefox 中,当用户在文本字段中按下 Enter 按钮时,现在onchange会调用 onsubmit 并且还会调用 onsubmit,这会使我的页面再次刷新。我为将焦点移到下一项而编写的逻辑也在起作用。但我不知道为什么,onchange并被onsubmit称为。该项目由大量代码组成,这就是为什么我无法发布一段代码的原因。知道为什么它会这样工作吗?

4

2 回答 2

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

于 2013-07-02T10:27:52.227 回答
0

一些浏览器有一个全局事件对象,而另一些则将事件对象作为参数发送给事件处理程序。Chrome 和 Internet Exlporer 使用前者,Firefox 使用后者。

一些浏览器使用 keyCode,其他浏览器使用 charCode。

输入键码是 13

于 2013-07-02T09:49:18.417 回答