【问题标题】:textbox input value not changing [duplicate]文本框输入值不变[重复]
【发布时间】:2021-02-16 13:44:05
【问题描述】:

以下代码更改了字段的“文本”,但网站未获取它。当您提交表单时,它说该字段仍为空,请输入有效数字。

var number = 123;
var field = document.getElementById('textfield');

field.value = number;

上面的代码只是在视觉上改变了文本框的输入。有没有办法模仿物理字段条目(让它被表单拾取)?

类型由未选中时的文本变为选中时的数字。

【问题讨论】:

  • 听起来像代码除了 onchange 触发,但设置值不会触发更改
  • 如果表单需要一个数字,我们为什么要将数字转换为字符串?
  • @Dr.Tenma 它不适用于字符串或数字
  • @epascarello 那会是field.onchange()吗?
  • 我们需要知道你的提交函数在做什么。

标签: javascript html forms google-chrome-extension


【解决方案1】:

编辑:我还没有看到你的提交功能,所以我在下面添加了一个作为示例。

这是你所期待的吗?

var number = 123;
var field = document.getElementById('td-wb-order-price-amount-limit-price');
var example = document.getElementById('example');


function clickMe() {
field.value = number.toString();;
example.innerHTML = "Your input value is " + number;
}
<input _ngcontent-axt-c487="" name="limitPrice" type="text" tdwbinput="" tdwbnumberinput="n4-2" 
required="" nonzero="" min="0" maxlength="7" tdwbnumberinputgroupseparator="true" 
class="td-wb-order-price-amount__input-limit-price td-wb-input ng-untouched ng-pristine ng-invalid" 
id="td-wb-order-price-amount-limit-price" autocomplete="off" aria-invalid="false">

<button onclick="clickMe();">Click </button>

<p id="example"></p>

【讨论】:

  • 如果有帮助,我将输入字段的 HTML 代码添加到问题中
  • 我已经更新了我的 sn-p。这更接近你想要做的事情吗?
  • 您是否拥有要填充这些字段的网站? - 或者你有这个网站的后台访问权限?
  • 是的,我上面的示例演示了此功能的外观。 - 如果您不拥有、管理或访问您尝试填充字段的网站,则您无法定位其他人页面上的元素来操作它们。如果这是真的,那么整个互联网将处于一个非常有趣的境地:)
  • 那么如果没有办法,自动填充扩展如何工作呢?
【解决方案2】:

您将需要onchange 属性来检测输入字段的变化。

const handleChange = () => {
  const inputValue = document.getElementById('input').value;
  console.log(inputValue)
}
&lt;input type="text" id="input" onchange="handleChange()" /&gt;

【讨论】:

  • 这不是我的代码,这是一个网站的代码,所以我不能添加任何新属性。我正在开发一个扩展程序,需要使用 javascript 填写该字段。
猜你喜欢
  • 1970-01-01
  • 2016-02-16
  • 2015-02-14
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2013-05-20
  • 2013-06-27
  • 2012-11-16
相关资源
最近更新 更多