javascript onsubmit 更改字段值
Posted
技术标签:
【中文标题】javascript onsubmit 更改字段值【英文标题】:javascript onsubmit change field value 【发布时间】:2014-05-22 11:56:49 【问题描述】:我正在编写一个包含 content_script 的 javascript chrome 扩展:
读取用户提交的数据 在需要时修改用户数据 删除用户可能已插入的前缀“myprefix:”并 提交修改后的文本。我已经编写了一些成功更新所需值的代码(我可以看到输入字段值在提交时被更改,就在浏览器离开页面之前)。但是,有时会提交未修改的值(删除前缀之前的值),并且这种情况会间歇性地发生。
到目前为止,我有这个代码:
document.addEventListener('DOMContentLoaded', function ()
onsubmitModifier();
function onsubmitModifier()
for (var i = 0; i < document.forms.length; i++)
document.forms[i].addEventListener("submit", function ()
var elementList = document.getElementsByTagName("INPUT");
for (var i = 0; i < elementList.length; i++)
if (elementList[i].value.toLowerCase().startsWith("myprefix:"))
// data modification is removed for testing
elementList[i].value = elementList[i].value.substring("myprefix:".length);
【问题讨论】:
您是否错过了DOMContentLoaded
活动?
你说它“间歇性地”发生:它发生的情况有什么规律吗?
是否可以在DOMContentLoaded
987654323@之后动态添加表单?
@Xan,我猜测如果在DOMContentLoaded
之后添加表单,那么我将不会收到“提交”事件,而我会收到它们(正在修改值,但提交的值并不总是修改后的值)。
这只是一个提示(我没有时间测试它):在单个表单的提交处理程序中,您正在循环页面上的 every
输入元素,即使它不是当前表单的一部分
【参考方案1】:
您可以尝试先停止默认事件,然后在 setTimeout
块中调用 form.submit()
。
【讨论】:
以上是关于javascript onsubmit 更改字段值的主要内容,如果未能解决你的问题,请参考以下文章
文本字段更改的值未在 OnSubmit 中更新 - React-Hook-Form 和 React Js
为啥我不能使用 onsubmit 来更改 innerHTML?