【发布时间】:2016-10-31 00:36:48
【问题描述】:
我正在尝试编写一个书签来自动填写表单,以简化手动测试。该站点是在 React 中实现的。我尝试过使用 JQuery,例如:
$("#emailAddress").val("bob@example.com").changed()
虽然input 字段在浏览器中明显更新,但似乎在后台该字段未被识别为已更改,因为表单提交时验证失败,表示数据丢失。
有没有一种可行的方法来使用 ad-hoc JS 自动填充 React 表单字段,而无需更改任何源代码?
(注意:我知道这种直接操作不是在一般应用程序开发中使用 React 的正确方法。在这里,我正在寻找任何解决方案,无论多么 hacky,以简化临时手动测试)。
【问题讨论】:
-
这真的取决于这些字段是如何实现的。听起来这些是Controlled Components,这意味着 React 正在控制每个输入应该具有的值。基于 React 的网站使用的流行设计模式是为每个输入字段附加一个
onChange处理程序,其中每个更改事件都会将字段的新值发送到某个集中存储,这将导致 React 组件重新- 呈现新值。 -
...所以我认为您希望在每个包含某些值的字段上手动触发更改事件,这将导致这个集中式存储使用您想要的值更新每个字段。跨度>
-
@MichaelParker -- 谢谢,是的,正如您所描述的,该网站正在使用
onChange机制。关于如何生成适当的更改事件的任何想法?我已经按照stackoverflow.com/a/2856602/6524176 进行了尝试,但我没有任何运气。 -
看看我的回答
标签: javascript jquery reactjs dom-events