javascript - 当我以编程方式输入值时,HTML 输入元素无法识别值

标签 javascript html google-chrome-extension

我有一个 Google Chrome 扩展程序,可以从一个站点检索数据并将数据粘贴到另一个站点。

要从第一个站点获取数据,我使用以下代码:

$('#copy').click(function() {   
       var newClipboard = {
      "name": $('#buyercontactname').val(),
  }
chrome.runtime.sendMessage({newClipboard: newClipboard});
});

要将数据粘贴到另一个站点,我使用以下代码:

$(document).ready(function() {
    chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
        if (request.paste) {
            if (!(request.clipboard.name === '')) {
                var nameParts = request.clipboard.name.split(' ');
                $('[id="shippingFirstName"]').val(nameParts[0])
                $('[id="shippingLastName"]').val(nameParts[1]);
            }
          }
        }
    });
});

我替换了关于第二个站点 divinputid 值。

问题:

如果我将值粘贴到 div 上,效果很好,但如果我将值粘贴到 input 上,则无法识别,我需要为此按下一个键。

例如:

粘贴值后:

enter image description here

单击“保存”后(出现错误,字段为空):

enter image description here

在我按下字段上的一个键后(即使我按下“空格”):

enter image description here

input 元素看起来像这样:

<input ng-model="user.first_name" id="shippingFirstName" name="shippingFirstName" prefix-attrs-with="shipping" value="" pattern="(?!^\d+$)^.+$" autocapitalize="off" autocomplete="off" maxlength="100" xo-error-tooltip="" ng-required="true" data-test-id="user.first_name" class="ng-pristine ng-empty ng-valid-pattern ng-invalid ng-invalid-required ng-valid-maxlength hasErrorTooltipRequired ng-touched focused" required="required" aria-describedby="nbafrxk" aria-invalid="true">

我该如何解决?

最佳答案

在设置输入框的值后创建并发送一个输入事件。您可以从这个link中获取有关输入事件的信息。 .

document.querySelector('[id="shippingFirstName"]').value=nameParts[0];
document.querySelector('[id="shippingLastName"]').value=nameParts[0];
document.querySelector('[id="shippingFirstName"]').dispatchEvent(new Event("input", { bubbles: true }));
document.querySelector('[id="shippingLastName"]').dispatchEvent(new Event("input", { bubbles: true }));

关于javascript - 当我以编程方式输入值时,HTML 输入元素无法识别值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53042514/

相关文章:

javascript - 在位掩码中打包和解包整数

javascript - Bootstrap 4 工具提示有 2 个问题。第一个 - 单击按钮时显示,第二个 - 显示禁用元素

javascript - 通过动态创建的脚本标签异步加载 JavaScript 的 CORS 问题

javascript - 模态出现时删除滚动条

html - 使用 css,bootstrap 响应式居中图像

google-chrome-extension - Google Chrome 商店 - 加载项不断被拒绝

javascript - 如何将项目添加到 dojo 中的组合框?

javascript - canvg SVG 渲染格式错误

google-chrome-extension - 按需持久化后台页面还是不卸载的事件页面?

google-chrome - 如何找到 "Denying load of chrome-extension://"的来源