【问题标题】:What are the valid strings for the typeArg argument of the InputEvent constructor?InputEvent 构造函数的 typeArg 参数的有效字符串是什么?
【发布时间】:2018-01-04 18:48:59
【问题描述】:

来自 MDN InputEvent() 文档:

event = new InputEvent(typeArg, inputEventInit);

typeArg 是表示事件名称的 DOMString。

什么是有效的“名字”?我找不到任何表明这一点的资源。我想为我的测试复制一个打字事件。

【问题讨论】:

  • 这个问题的完美答案现在已经消失了。如果原始发帖人想重新添加该答案,我将等待 30 分钟,然后自己发布答案。
  • @komali_2 我错了,是 inputType 而不是 typeArg。类型在第 5.2 节中列出,inputbeforeInput
  • 哦,哈哈,我不小心向下滚动,因此认为您链接了正确的。您要提交 5.2 以便我接受答案吗?
  • 虽然想知道这个问题的答案是否有效,但如果您想实现“假”输入事件,我建议您使用具有合理名称的完全自定义事件,您可以记录并拥有更多控制,而不是依赖于此。
  • 你能澄清一下吗?我想做的是触发一个实际的输入事件,即将文本放入一个字段并让 Vue.js 知道它发生了。

标签: javascript html


【解决方案1】:

这列在Section 5.2 of the Input Events Level 2 Specification 中,分别是inputbeforeInput。这也在Section 4.5.3 of the UI Events Specification 中列出。

【讨论】:

  • 在测试var input = new InputEvent('input'); 时,input 的计算结果实际上只是 Window。我已经不知道了
  • @komali_2 什么意思?
  • 试试这个:var input = new InputEvent('hah'); console.log(input)
  • @komali_2 我在 Chrome 控制台中收到 InputEvent { … }
【解决方案2】:

InputEvent 是一个对象,它特别继承了所有与 表单事件

它们是:提交、更改、输入

所以一个用例将揭示任何 InputEvent 事件的那些属性之一

var input = document.getElementById("textarea") ;
 
input.addEventListener("input", function(e) {
  console.log(e.inputType) ; 
})

或者在这种情况下创建一个新的自定义输入事件并在循环中多次触发

var inputField = document.getElementById("textarea") ;
var newInput = new InputEvent("input") ; 

for (var i = 0 ; i < 10 ; i ++ ) {
  inputField.value += i + "\n" ; 
  inputField.dispatchEvent(newInput) ; 
  
}

【讨论】:

    猜你喜欢
    • 2015-05-20
    • 2012-12-05
    • 2014-02-23
    • 2014-08-28
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    相关资源
    最近更新 更多