Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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中是否存在onchange问题?还是我遗漏了什么?_Javascript_Html_Css - Fatal编程技术网

Javascript 为什么`<;输入类型=';日期'/>;`和`<;输入类型=';时间'/>;`Firefox中是否存在onchange问题?还是我遗漏了什么?

Javascript 为什么`<;输入类型=';日期'/>;`和`<;输入类型=';时间'/>;`Firefox中是否存在onchange问题?还是我遗漏了什么?,javascript,html,css,Javascript,Html,Css,Firefox桌面似乎只会在焦点时运行更改事件,而不是简单地关闭或。不知何故,即使使用Firefox(如果您知道原因,请告诉我),使用堆栈溢出也无法重现此问题。但是,如果您使用Firefox在localhost上运行该代码,您将看到它似乎每隔一段时间都能正常工作。我相信这是因为重新加载页面时,Firefox将重新关注以前关注的元素 那么,我说的“工作”是什么意思?当您点击关闭按钮时,如果值为=',则应获得console.log()ed,正如我在下面编写的代码中所示。有时它不会被记录,并且值会变回

Firefox桌面似乎只会在焦点时运行更改事件,而不是简单地关闭
。不知何故,即使使用Firefox(如果您知道原因,请告诉我),使用堆栈溢出也无法重现此问题。但是,如果您使用Firefox在localhost上运行该代码,您将看到它似乎每隔一段时间都能正常工作。我相信这是因为重新加载页面时,Firefox将重新关注以前关注的元素

那么,我说的“工作”是什么意思?当您点击关闭按钮时,如果值为
='
,则应获得
console.log()
ed,正如我在下面编写的代码中所示。有时它不会被记录,并且值会变回空,因此它不起作用。使用Firefox Quantum 67.0(64位)无法触发更改事件

/
/*external.js*/
*{
框大小:边框框;填充:0;边距:0;
}
html,正文{
宽度:100%;高度:100%;
}
身体{
背景:#ccc;
}
#内容{
填充:7px;
}
标签,输入{
字体:22px塔荷马,日内瓦,无衬线;
}
标签{
显示:块;高度:26px;字体重量:粗体;边距:7px 0 4px;浮动:左侧;
}
输入{
宽度:100%;高度:38px;背景:fff;颜色:000;填充:5px;边框:1px实心#0b0;浮动:左侧;
}

测试模板
通知日期
通知时间

我不确定您看到的是错误还是错误,但是如果您无法找到
更改事件的解决方案,您可以尝试侦听错误

每次元素的值更改时都会触发输入事件。这与更改事件不同,更改事件仅在提交值时触发,例如按enter键、从选项列表中选择值等

根据OP的评论,要解决此问题,请将以下行更改为:

this.dateElement.onchange = function(){
致:


这似乎不会发生在meCan身上你能重新表述你的问题吗?这还不清楚你所面临的实际问题是什么,如果整个代码块都没有重现错误,那么它的可读性就更差了。你能设定一个真实的目标吗?您是否仅在重新加载页面时才面临此问题(如浏览器自动设置的字段)?如果是其他内容,那么如果不是在聚焦元素时,如何执行应该触发此事件的更改?是否复制代码并粘贴到本地主机中,然后测试它?一个简单的示例,如
行为。复制操作代码并在本地运行会显示相同的行为。投票以非主题方式结束–OP没有包含代码以表明它没有按预期工作。您是否尝试过收听该操作?
。onchange
只是被更改为
。oninput
,它就工作了@StackSlave我用更改更新了答案。这看起来对吗?是的,这让我快发疯了,因为它在我的堆栈溢出模型上工作(在我发布之前),但不是在我的浏览器上。很高兴你找到了一个解决方法(如果不是解决方案的话):)对我来说,
。onchange
使用完全相同的浏览器处理堆栈溢出仍然毫无意义。MKUltra!
this.timeElement.onchange = function(){
this.dateElement.oninput = function(){
this.timeElement.oninput = function(){