javascript - 填充输入框的value属性

时间:2016-06-22 05:28:13

标签: javascript jquery node.js pug

我正在尝试制作一个简单的webapp。 我想将主页面中的数据放到另一个窗口/选项卡上的输入框中,但是当我打开它时输入框总是空的。

这是代码: 的 global.js

function showUserInfo(event) {

// Prevent Link from Firing
event.preventDefault();

var _id = $(this).attr('rel');
var arrayPosition = userListData.map(function(arrayItem) { return    arrayItem._id; }).indexOf(_id);

// Get our User Object
var thisUserObject = userListData[arrayPosition];
window.open('http://localhost:3000/editrecord', 'window', 'width=500,height=400');
var fName = thisUserObject.cName
$("#inputecName").attr('value', fname);

运行它会打开'editrecord'窗口,我想要获取的数据应该在'editrecord'页面的输入框中。

editrecord.jade

#editBox
     fieldset
          input#inputecName(type='text', placeholder='Customer Name', width = '50%')
          br
          button#btnEditRec(type='submit') Update Record

提前谢谢。

3 个答案:

答案 0 :(得分:0)

您可以通过URL发送数据,

<a href="nextPage.html?data=blah">Next page</a>

通过JS或服务器端脚本,您可以从网址抓取data并使用它,

答案 1 :(得分:0)

你可以这样做

var childWindow = window.open('http://localhost:3000/editrecord', 'window', 'width=500,height=400');


$(childWindow.document).load(function() {

    var fName = thisUserObject.cName
    $("#inputecName").attr('value', fname);
})

您可以使用普通javascript

从chilld窗口访问inputecName
childWindow.document.inputecName

答案 2 :(得分:0)

问题中的

js尝试将元素的value设置为单独的document

$("#inputecName").attr('value', fname);
来自当前document

,未引用该元素位于单独document的单独window内。

您可以使用sessionStorage访问具有相同来源的浏览上下文或Storage对象之间的window对象;在浏览器中打开.ready()并加载sessionStorage时,使用editrecord.html检查document

原始html文档global.js

<script>
  sessionStorage.setItem("id", 123);
  var w = window.open("editrecord.html", "w");
</script>

editrecord.html

   <head>
    <script>
      $(document).ready(function() {
        if (sessionStorage.id) {
          $("#inputecName").val(sessionStorage.getItem("id"))
        }
      })
    </script>
  </head>

  <body>
    <input type="text" id="inputecName" />
  </body>

plnkr http://plnkr.co/edit/7TRQOPYPX4bMpxr6pjyX?p=preview