表单文本 输入字段值不随 javascript 更改

form text Input field value not changing with javascript

提问人:jadjoud 提问时间:1/19/2023 最后编辑:jadjoud 更新时间:1/20/2023 访问量:85

问:

问题很简单,但让我发疯。 我正在尝试使用带有 tampermonkey 的 javascript 注入在现有网站上自动执行任务。一切正常,直到我尝试以同时有效和无效的形式更改某些输入字段的值。

这是我尝试为其设置值的元素:

<input type="text" name="fighter">

这是我用来进行此更改的代码:

document.querySelector("input[name='fighter']").value = 1;

奇怪的是,当我运行此代码时,我可以在文本输入字段中enter image description here直观地看到一个 1,但是如果我在表单或页面上的任何位置向前按,则数字会消失,并且该值被视为无。就像什么都没发生一样。
如果我只是将光标放在输入字段上并用键盘键入它,它就可以正常工作。例如,如果在一个字段中我键入 3,而在另一个字段中,我使用 JavaScript 将值更改为 5(这再次显示输入字段中的值),然后我在表单上按 Next,则只有 3 注册到表单提交。
当使用上面的选择器用键盘写入时,我可以从输入字段中读取值,而且它也可以正常工作。
如果我尝试使用 .focus() 方法,光标不会移动到输入字段中。

我在网上看了很多,似乎没有发现同样的问题。如果有人有任何想法或需要更多信息,请告诉我。

我没有发布网页,因为它是一款需要帐户和进度才能看到的游戏。

JavaScript 输入 setValue

评论

1赞 Chris G 1/19/2023
你能在一个片段中重现这个问题吗?小提琴什么的?

答:

0赞 user3931093 1/19/2023 #1

您应该尝试设置表单字段的值,而不是元素的值。检查此内容以获取 https://www.javascript-coder.com/javascript-form/javascript-form-value/

评论

0赞 jadjoud 1/19/2023
我刚刚尝试了链接中解释的内容,结果与上述完全相同。我可以在输入文本框中看到数字在变化,但它没有注册。我在另一个输入元素上使用键盘,而带有 js 的那个元素消失了,就好像什么都没有一样。
0赞 jadjoud 1/20/2023 #2

我能够解决这个问题。我使用搜索关键字查看了网页的内置脚本,发现了一个描述性名称为“selectShips(id, amount)”的函数,该函数将 ID 和船舶数量作为输入。我使用了它,输入被更新和注册,就像我用键盘打字一样。
我没有足够的 javascript 经验来理解为什么这会起作用并且设置文本输入字段的值没有,但我想出于我作为业余爱好者的目的,我不需要知道。.

评论

0赞 Community 1/22/2023
您的答案可以通过额外的支持信息得到改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。