javascript - 如何获取引用号(链接形式)以使用javascript在另一个html页面中自动填写表格的一部分

标签 javascript html local-storage onclicklistener

使用本地存储和 onclick 与 javascript

我有一个包含 2 个职位描述的 html 文件:

html文件1

<li><Job Reference Number: wru01</li>
<li><Job Reference Number: wru01</li>

我需要创建一个链接(使用 javascript),当单击每个职位描述时,它会自动填写应输入职位描述的表格(此表格位于另一个 html 页面上)

html文件2:

<legend>Job Application Information: </legend>
<label> Job Reference Number: </label>
<input id="refnumber" type="text" name="refnumber" required="required" />

所以基本上我需要它,根据单击 wru01 或 wru02 的作业编号,它会自动使用本地存储在下一页的表单中填写作业引用编号。

我已经试过了

js文件1

function onclick1() {

  var anchor = document.getElementById('link');

  anchor.addEventListener('click', function(event) {
    event.preventDefault();

    const jobCode = event.target.getAttribute('data-job');

    localStorage.setItem('job-code', jobCode);

    //need redirect user to apply page
    //console.log(event.target)
    window.location = event.target.getAttribute('href');

  })
}


function onclick2() {


  var anchor = document.getElementById('link2');


  anchor.addEventListener('click', function(event) {
    event.preventDefault();

    const jobCode = event.target.getAttribute('data-job');

    localStorage.setItem('job-code', jobCode);

    //need redirect user to apply page
    //console.log(event.target)
    window.location = event.target.getAttribute('href');

  })
}

function init() {

  document.getElementById("link").onclick = function() {
    onclick1()
  };
  document.getElementById("link2").onclick = function() {
    onclick2()
  }
  window.onload = init;
}

js文件2

function LoadJobCode() {
  var code = localStorage.getItem('job-code');

  if (code) {
    var input = document.getElementById('refnumber');
    // disable text being entered
    input.value = code;
    input.disabled = true;
  }

}

最佳答案

对不起,这不是一个好主意。我认为你可以使用 setTimeout 来解决这个问题。这是我的代码:

function onclick1() {
     var anchor = document.getElementById('link');
     anchor.addEventListener('click', function (event) {
            event.preventDefault();
            const jobCode = event.target.getAttribute('data-job');
            console.log(jobCode)
            localStorage.setItem('job-code', jobCode);
            setTimeout(() => {
                window.location.href = event.target.getAttribute('href');
            },1000)

     })
 }

我为什么要这样做?这是为了确保在进入另一个 html 页面之前保存数据(data-job)。同样,您可以使用 async/await,如下图:

function onclick1() {
        var anchor = document.getElementById('link');
        anchor.addEventListener('click', function (event) {
            event.preventDefault();
            const jobCode = event.target.getAttribute('data-job');
            console.log(jobCode)
            localStorage.setItem('job-code', jobCode);
            async function locate() {
                await new Promise(() => {
                    window.location.href = event.target.getAttribute('href');
                })
            }
            locate();
        })
    }

关于javascript - 如何获取引用号(链接形式)以使用javascript在另一个html页面中自动填写表格的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56248817/

相关文章:

javascript - 图标导致 View 中出现间隙 - React Native

javascript - 如何在 jQuery 中选择并获取非空文本区域字段的值?

html - Chrome 开发者工具中出现额外的 CSS?

html - 打印具有复杂样式的 HTML 复选框

Backbone.js:只需一行设置本地存储?

javascript - Chrome 扩展,使用 localStorage 保存每个标签页的 ip、tabid、serverfingerprint

javascript - 使用 jQuery 在没有 jQuery UI 的情况下调整 div 大小

javascript - 对象不支持属性或方法 'findIndex' IE11 javascript 问题

javascript - "=="、 "!="等的 Netbeans javascript 警告

用于离线网站的 HTML5 localStorage