我正在编写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函数将其复制。任何帮助表示赞赏。
修改 因此,似乎唯一混乱的输入是可编辑的下拉菜单。不知道为什么还是这样。
答案 0 :(得分:0)
using .trigger()是一个jQuery函数,普通的javascript(这就是您正在使用的样子)无法识别。取而代之的是,您可以选择dispatchEvent()-看 here 来了解问题所在。
您要做的是创建一个新的change事件,并将其分派到更改的字段上。程序化更改不会传播用户输入的更改。