提问人:jadjoud 提问时间:1/19/2023 最后编辑:jadjoud 更新时间:1/20/2023 访问量:85
表单文本 输入字段值不随 javascript 更改
form text Input field value not changing with javascript
问:
问题很简单,但让我发疯。 我正在尝试使用带有 tampermonkey 的 javascript 注入在现有网站上自动执行任务。一切正常,直到我尝试以同时有效和无效的形式更改某些输入字段的值。
这是我尝试为其设置值的元素:
<input type="text" name="fighter">
这是我用来进行此更改的代码:
document.querySelector("input[name='fighter']").value = 1;
奇怪的是,当我运行此代码时,我可以在文本输入字段中直观地看到一个 1,但是如果我在表单或页面上的任何位置向前按,则数字会消失,并且该值被视为无。就像什么都没发生一样。
如果我只是将光标放在输入字段上并用键盘键入它,它就可以正常工作。例如,如果在一个字段中我键入 3,而在另一个字段中,我使用 JavaScript 将值更改为 5(这再次显示输入字段中的值),然后我在表单上按 Next,则只有 3 注册到表单提交。
当使用上面的选择器用键盘写入时,我可以从输入字段中读取值,而且它也可以正常工作。
如果我尝试使用 .focus() 方法,光标不会移动到输入字段中。
我在网上看了很多,似乎没有发现同样的问题。如果有人有任何想法或需要更多信息,请告诉我。
我没有发布网页,因为它是一款需要帐户和进度才能看到的游戏。
答:
您应该尝试设置表单字段的值,而不是元素的值。检查此内容以获取 https://www.javascript-coder.com/javascript-form/javascript-form-value/
评论
我能够解决这个问题。我使用搜索关键字查看了网页的内置脚本,发现了一个描述性名称为“selectShips(id, amount)”的函数,该函数将 ID 和船舶数量作为输入。我使用了它,输入被更新和注册,就像我用键盘打字一样。
我没有足够的 javascript 经验来理解为什么这会起作用并且设置文本输入字段的值没有,但我想出于我作为业余爱好者的目的,我不需要知道。.
评论