簡體   English   中英

JQuery - 在第 3 方表單上預填充表單字段

[英]JQuery - prepopulate form field on 3rd party form

我的網頁上有一個需要預填充的 Netresults 表單。 表單是用 javascript 插入到頁面中的,所以我無法在源代碼中看到表單字段。

如果表單在我的頁面上,我會使用下面的代碼,但事實並非如此,我不知道如何定位這些字段。 任何人都可以幫忙嗎?

var keywords = getUrlParameter('keywords');

$('input[name=netres-keywords]').val(keywords);

使用以下代碼插入 netresults 表單:

(function() {
    var $__MAForm;
    ($__MAForm =function(){
        if(typeof($__MA)=="undefined"){
            return window.setTimeout($__MAForm,50);
        }else{
            $__MA.addMAForm("43788303-2b62-4774-ad0f-63542e3ed92a", "forms.example.com");
        }
    })();
})();

這可能需要使用Mutation Observer

突變觀察者將檢查對 DOM 的更改(添加的元素等),我們可以使用它來觸發事件。 每當將新的<form>元素添加到<body>下面的代碼將更改名為netres-keywords的輸入的值。

在這篇文章底部的示例 JSFiddle 中,我創建了一個按鈕來模擬添加到頁面的表單。 如您所見,文本框將預先填充。

JSFIDDLE 示例

 $(document).ready(function() { var keywords = "this is a test keyword"; var formCount = $("form").length; var observer = new MutationObserver(function() { var newFormCount = $("form").length; if (newFormCount > formCount) { $('input[name=netres-keywords]').last().val(keywords); } }); $("button").click(function() { $form = $("<form>").html("<h1>New form:</h1><input type='text' name='netres-keywords'>"); $("body").append($form); }); var observerConfig = { attributes: true, childList: true, characterData: true }; var targetNode = document.body; observer.observe(targetNode, observerConfig); });
 form { padding: 10px; border: 1px solid red; margin-bottom: 20px; } h1 { margin: 0; padding: 0; }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button> SIMULATE ADDING FORM </button> <br> <br>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM