我需要使按键自动化。您可能会说:“那并不难,但请听,还有更多。我不想只触发keydown
或keypressed
事件。我实际上需要使用JavaScript代码在文本框中输入字符。
现在,在您给我类似element.value = "Hooray!"
的答复之前,请意识到这不是我想要的。如果我使用.value
或.innerText
或其他方式更改输入框,我尝试使用代码输入的文本框将无法识别我的输入。还要注意,关于文本框的任何内容都无法更改。我必须使用它的当前状态。
因此,如何像使用键盘自己键入文本一样,使用JavaScript(而不是jQuery!)在文本框中键入文本?
我说.value
或.innerText
不起作用的原因是因为它不会触发文本框的文本验证。那么,我真正要问的是如何以编程方式“键入”某些内容,从而触发文本验证?
答案 0 :(得分:1)
我们有一个类似的案例。不是不是可以通过编程方式设置文本字段,而是设置它不会触发输入验证。并且/除非完成验证,否则将不会启用继续按钮。
我们不是通过编程键入每个键来解决此问题,而是通过设置文本字段的值,然后假装用户通过事件粘贴了它。像这样:
// Somehow get a reference to your text field in question
var textField = document.getElementById('myAwesomeField')
// Set the value to what you need
textField.value = 'Some valuable input'
// Programmatically create a 'paste' event
var pasteEvent = new ClipboardEvent('paste')
// Pretend that the user pasted, by having the textField dispatch the event
textField.dispatchEvent(pasteEvent)
一些相关的读物:Clipboard events,dispatchEvent()。总体上了解事件和事件的概述也将有所帮助。 This是一个简介,不过我敢肯定可以找到更多。一旦掌握了窍门,here's a bunch of events就会激发您对可以触发和/或反应的所有事件的食欲。
答案 1 :(得分:0)
您可以使用.value更改Value,然后手动触发验证功能。