网站无法识别使用javascript修改过的表单输入

时间:2018-08-06 20:21:56

标签: javascript jquery html forms google-chrome-extension

我正在编写chrome扩展程序,该扩展程序扩展了我需要用于工作的软件。我希望能够将所有表单数据从一页复制到另一页,但是当我单击“保存”时,它会立即恢复到以前的状态。

$(document).keypress(function(e){
  //alert(e.which);
  if (e.shiftKey && ( e.which === 67 )) {
    var inputs = $("input[type|='text'], select");
    for(var i=0; i < inputs.length; i++)
    {
      var id = $(inputs[i]).attr("id");
      var val = $(inputs[i]).val();

      if(id != undefined && id.indexOf("rmaAssetComponents") != -1)
      {
        id = id.split("_")[7];
      }

      writeCookie(id, val, 1);
    }
  }
  if (e.shiftKey && ( e.which === 86 )) {
    var inputs = $("input[type|='text'], select");
    for(var i=0; i < inputs.length; i++)
    {
      var val = $(inputs[i]).val();
      var id = $(inputs[i]).attr("id");
      var searchId = id;

      if(id != undefined && id.indexOf("rmaAssetComponents") != -1)
      {
        searchId = id.split("_")[7];
        //console.log(searchId);
      }

      if(val == '')
      {
        $("[id*='"+id+"']").val(readCookie(searchId));
      }
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

我知道代码是意大利面,请不要对我过多地判断。要点是,我将文本输入的值存储在cookie中,然后使用.val()jquery函数将其复制。任何帮助表示赞赏。

修改 因此,似乎唯一混乱的输入是可编辑的下拉菜单。不知道为什么还是这样。

1 个答案:

答案 0 :(得分:0)

using .trigger()是一个jQuery函数,普通的javascript(这就是您正在使用的样子)无法识别。取而代之的是,您可以选择dispatchEvent()-看 here 来了解问题所在。

您要做的是创建一个新的change事件,并将其分派到更改的字段上。程序化更改不会传播用户输入的更改。