Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Firefox中输入按钮问题_Javascript_Events_Firefox_Onchange_Onkeydown - Fatal编程技术网

Javascript 在Firefox中输入按钮问题

Javascript 在Firefox中输入按钮问题,javascript,events,firefox,onchange,onkeydown,Javascript,Events,Firefox,Onchange,Onkeydown,我有一个只接受数字的文本字段。当用户键入任何字符并移出文本字段时, 我使用onchange检查用户是否输入了数字或字符。因此,当用户按tab键时,使用onchange将选中该值。 当用户按Enter按钮时,设置为window.event.keycode=9因为IE支持这一点。要使其在其他浏览器中工作, 我编写了每当用户按下enter按钮时移动焦点的逻辑 我面临的问题是在Firefox中,当用户按下文本字段中的enter按钮时,现在调用了onchange,同时也调用了onsubmit,这使得我的页

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

我面临的问题是在Firefox中,当用户按下文本字段中的enter按钮时,现在调用了
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();" />
var reg=/^(\d{1,8}(\.\d{0,5})%)|(\d{1,8}(\.\d{0,5})$/; if(!reg.test($(“#txtunitId”).val()){ $(“#txtunitId”).val(“”); 返回false; } }

jshiddle.net/hQ86t/20

我们不是通灵者……如果我们看不到代码,我们怎么能帮助呢?我的水晶球说:如果按下了
ENTER
键,则在验证函数中添加
event.preventDefault()
。Hi@imulse。请在IE和Firefox中检查这一点。嗨,蒂姆。我也试过了。这在Firefox中很奇怪。在IE和Firefox中查看这个@Cyril看起来像FF(21.0)
onsubmit
会在
onkeydown
之前开火,但那没有任何意义!?我现在手头没有Firebug,只有错误控制台,无法正确地调查这个问题……哪一个?我找不到链接实际上这些逻辑已经写在onchange中了。我不想用keydown或keyup来写它。问题是FF在输入时按enter键提交表单,而不是验证本身。因此,您所说的是在enter键打开时阻止流。因此,onchange也将成功运行。我说的对吗,提姆?嗨,杰敏。我看到了你的密码。。但是我也想包括onchange事件。这是您需要解决的主要问题。我不知道为什么不在JSFIDLE上工作。