Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据传递到新页并将其写入_Javascript_Html_Getelementbyid - Fatal编程技术网

Javascript 将数据传递到新页并将其写入

Javascript 将数据传递到新页并将其写入,javascript,html,getelementbyid,Javascript,Html,Getelementbyid,我正在尝试使用GetElementById从文本框传递数据 这是我的文本框: <tr> <td>Your name:</td> <td> <input type="text" name="name" id = "p_name"/><br /></td> </tr> 你的名字: 以下是我的职责: function mypopup() { mywindow = window.open(

我正在尝试使用GetElementById从文本框传递数据

这是我的文本框:

<tr>
<td>Your name:</td>
<td> <input type="text" name="name" id = "p_name"/><br /></td>

</tr>

你的名字:

以下是我的职责:

function mypopup()
{
     mywindow = window.open("Page_preview.html","width=200,height=200");
     mywindow.moveTo(0, 0);

}
function load()
{
    document.write("<p>" + Date() + "</p>");

    var myTextField = document.getElementById('p_name');
     if(myTextField.value != "")
     alert("You entered: " + myTextField.value)
}
函数mypopup()
{
mywindow=window.open(“Page_preview.html”,“宽度=200,高度=200”);
mywindow.moveTo(0,0);
}
函数加载()
{
文件。写(“”+日期()+“

”); var myTextField=document.getElementById('p_name'); 如果(myTextField.value!=“”) 警报(“您输入:”+myTextField.value) }
load方法在page_preview.html正文中调用

这是启动mypopup功能的按钮:

<input type="button" onclick="mypopup()" value="Show preview" />

除了文档之外,任何东西都可以工作。getElementById('p_name')从不返回值,就像它找不到一样

我相信这是很容易做到的(我是新手)。

尝试使用jQuery

$('#p_name').val()

如果表单有
名称
,并且文本字段有
名称
,则可以使用
document.myForm.myTextbox.value

<form name='myForm'>
    <input type='text' name='myTextbox'>


此外,在DOM上执行操作之前,请确保您的页面实际上已完全加载-如果您的
页面预览.html
在加载文本字段之前运行javascript,则会导致它始终为
nil
文档。write
覆盖页面中的html,因此,在该行执行后,
不再存在。请尝试修改
div
(或
span
p
等)的内容以进行输出

HTML示例:

<div id="messages"></div>

示例JS:

var outputElement = document.getElementById;
var msgs = 'This is a better way to monitor output';
var htmlMsgs = '<p>This is a better way to monitor output</p>';
outputElement.innerText = msgs;
//outputElement.innerHTML = htmlMsgs; //for formatted output.
var outputElement=document.getElementById;
var msgs='这是监视输出的更好方法';
var htmlMsgs='这是监视输出的更好方法

; outputElement.innerText=msgs; //outputElement.innerHTML=htmlMsgs//用于格式化输出。
为什么不为onclick事件增加价值?我的意思是将参数传递给函数。像这样的

<input type="button" onclick="mypopup(document.getElementById('p_name').value)" value="Show preview" />
function load(p_name)
{
  document.write("<p>" + Date() + "</p>");

  var myTextField = p_name;
  if(myTextField.value != "")
  alert("You entered: " + myTextField.value)
}
这样做:

 var myTextField = document.getElementById('p_name').value;
我想那会解决的。希望对您有所帮助。

document.getElementById()
将在当前文档中获取一个元素,也就是说,它不会在其他窗口中显示。将数据从一个窗口传递到下一个窗口的一种方法是在
mypopup()
函数中使用
.getElementById()
,并将值传递到查询字符串中的“Page\u preview.html”,即当您打开第二个窗口时,将url设置为
“Page\u preview.html”name=“+encodeURIComponent(document.getElementById(“p\u name”)。value)
 var myTextField = document.getElementById('p_name').value;