当前位置: 首页 > 知识库问答 >
问题:

Chrome 81->83输入[type=“datetime local”]输入键行为

昌山
2023-03-14

输入[type=“datetime local”]行为在chrome 81和83之间发生了更改

论铬

在chrome 83上,这种行为已经改变:回车键触发日历的打开,并且没有键盘事件被触发(参见saucelabs上的行为)-chrome 83

以下代码(也在https://jsfiddle.net/os139hw6/)

<input id="dt" type="datetime-local"/>
document.querySelector("#dt").addEventListener("keyup", (ev) => {
    console.log(ev.keyCode);
});

显示keyup 13事件

我使用这个keyup 13事件来验证/提交数据,但这是不可能的;我没有发现这个更新/功能/错误的许多更改日志/细节,但这个铬更改可能是一个

此外,即使没有任何js,这也禁止在日期时间输入中使用回车键提交表单:请参见https://jsfiddle.net/h0r4v516/

<form id="frm">
<div>
  <label>This field cannot be used to submit the form using "enter" key</label>
  <input type="datetime-local" id="dt"/>
</div>
<div>
  <label>This field can be used to submit the form using "enter" key</label>
  <input type="text" id="txt"/>
</div>
<button>Submit</button>
</form>

那么,有可能保持旧的行为吗?如果没有,我现在如何验证使用键盘的datetime本地表单输入...

编辑:在铬错误上创建了一个问题

共有1个答案

斜光耀
2023-03-14

您可以执行此解决方法来修复此行为:

首先从输入日期捕获取消事件“keydow”,并防止默认操作(打开弹出窗口)同时抛出您自己的事件来处理它。

`
    $(document).on('keydown', "input[type='date']", function (e) {
        if (e.which == 13) {
            e.preventDefault();        
            $(this).trigger('myOwnEvent');
        }
    });

`
 类似资料:
  • 我需要向我的实体添加日期,并让用户在web表单中设置它。默认情况下,该字段需要填写今天的日期。 显示为默认值设置的正确日期 显示没有任何值的日期选择器(注意:String startDate=“2016-08-01”;) 生成 400 错误(错误请求)(注意:开始日期 = 新日期 ();) 那么,问题是:如何使用胸膜输入日期? 我可以使用Date()数据类型输入和存储这些数据吗 我需要如何在表单中

  • 问题内容: 我正在开发用于库存管理的应用程序。 操作是,通过在中键入项目代码并按键,该代码的详细信息应显示在。在这里,我必须输入数量,然后按计算数量。但是,现在通过提供商品代码,详细信息到达,我可以键入数量,但是通过按键将焦点移到下一行,并且不进行任何计算。但是,再次按键,将计算出最后输入的金额。我是Java的初学者,所以我不知道如何解决此问题。我在Netbeans中使用MySQL和Java。 我

  • 我想在html表单中将用户输入限制为正数。 我知道您可以设置min=“0”,但是可以通过手动输入负数绕过此设置。 有没有其他方法可以解决这个问题而不用编写验证函数?

  • 我想要功能 只需输入--EditText返回并提交文本 Shift+Enter--在EditText中新建行 在layout.xml中:

  • 我有这段代码,我试图运行从用户通过扫描器类获得输入。我无法在输入控制台中键入任何内容。没有例外。只是计算机在等待输入,而我输入的内容没有显示在控制台中。 当我运行这个程序时,我能够获得第一个方法void assignplayercharacter,但是第二个函数void play(int player)的输入。程序正在运行,控制台正在等待输入,但当我键入时,控制台上没有出现字符。如果我注释掉第一个

  • 问题内容: 我有以下形式的文本输入: 我试图让它接受多行输入。宽度和高度会使框变大,但用户可以输入所有想要的文本,但它只能填充一行。 如何使输入更像文本区域? 问题答案: 您需要使用文本区域进行多行处理。