Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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 Chrome和oninput事件_Javascript_Html_Google Chrome - Fatal编程技术网

Javascript Chrome和oninput事件

Javascript Chrome和oninput事件,javascript,html,google-chrome,Javascript,Html,Google Chrome,我有一个文本框,我正试图在输入上触发一个事件(我下面的示例只从输入中删除了一个逗号,但是我确实需要它来做更多的高级工作)。我的代码在Firefox和Internet Explorer上运行得很好,但是当我在Chrome中点击文本框时,我有大约0.5秒的时间开始键入,否则我会失去焦点。在我的网站上测试下面的代码会产生错误。有什么想法吗 <input type="text" id="question" name="question" oninput="clean(this);" />

我有一个文本框,我正试图在输入上触发一个事件(我下面的示例只从输入中删除了一个逗号,但是我确实需要它来做更多的高级工作)。我的代码在Firefox和Internet Explorer上运行得很好,但是当我在Chrome中点击文本框时,我有大约0.5秒的时间开始键入,否则我会失去焦点。在我的网站上测试下面的代码会产生错误。有什么想法吗

<input type="text" id="question" name="question" oninput="clean(this);" />

<script type="text/javascript">
    function clean(q){
        q.value=q.value.replace(",","");
    }
</script>

功能清洁(q){
q、 value=q.value.replace(“,”,“);
}

感谢您的帮助

您可以尝试设置计时器以运行函数中的代码

<input type="text" id="question" name="question" oninput="clean(this);" />

<script type="text/javascript">
    function clean(q){
        window.setTimeout(function(){
            q.value=q.value.replace(",","");
        }, 0);
    }
</script>

功能清洁(q){
setTimeout(函数(){
q、 value=q.value.replace(“,”,“);
}, 0);
}

如果您要做一些复杂的事情,我建议您使用,因为这将修复交叉浏览器错误

并使用类似于:

$('#input-desired').bind('keyup', function() {
     this.value = this.value.replace(',', '');
});
desiredInputChanges = function (input) {
   input.value = input.value.replace(',', '');
}
如果你想要一个简单的应用程序,你可以试试这个

<input type="input" id="desired" onkeyup="desiredInputChanges(this);" />
请注意,不要忘记将函数作为类并保护您的方法:)

尝试使用
,它只会在输入中键入内容后启动函数


康弗里克和罗布指出,它在JS fiddle上工作得很好,这要归功于他们。我觉得自己很笨,因为我没有先尝试。原来页面上的其他一些Javascript导致触发器中断。谢谢大家的帮助

我无法用这个jsFiddle重现您的问题:将要评论与@ComFreek相同的东西。铬v28Hmm。。。那很有趣。我想知道我的其他一些JS是否出于任何原因在干预。让我来讨论一下这个问题,然后再回复你。-1因为如果有人在特定浏览器上遇到问题,你不能简单地建议jQuery。这太荒谬了。jQuery不是万灵药。此外,为什么要使用
$(this).val()
?您可以使用
这个.value
。另一种方法是不必要的开销。重写:
this.value=this.value.replace(',','')我没有这样做,他指定要做一些复杂的事情。我从来不会推荐jQuery做这样的事情,但在他文章的开头,他告诉我这会做更复杂的事情。我完全同意你的看法。我想他想做一些更高级的字符串操作。无论如何,如果您编辑您的答案以包含一个通用解决方案(例如,使用keyup事件)并简化jQuery代码,那就太好了;)对不起,各位,我的错误,我会在其他答案中给予更多关注。我认为现在答案是可以的。干杯。这里不需要行政人员;)(我为我的许多小编辑感到抱歉。)。我忘了对StackOverflow说欢迎。当我第一次开始打字时,我对onkeyup也有同样的问题。一旦我开始,问题似乎就消失了。仍然不理想。当我在JS/DOM中遇到一个奇怪的问题时,我会尝试隔离导致问题的代码。如果错误消失,那么可以确定是其他代码导致了问题+1顺便说一句;)当时我正在研究,这让我等了两天才接受自己的答案。