Javascript onsubmit更改字段值

javascript onsubmit change field value

本文关键字:字段 onsubmit Javascript      更新时间:2023-09-26

我正在写一个javascript chrome扩展,其中包含一个content_script:

  • 读取用户提交的数据
  • 在需要时修改用户数据
  • 删除用户可能插入的前缀"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);
                }
            }
        }
    }
}

您可以尝试先停止默认事件,然后在setTimeout块中调用form.submit()