簡體   English   中英

將數據傳遞到新頁面並進行編寫

[英]Passing data to a new page and writing it

我試圖使用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)
}

page_preview.html主體內部調用load方法。

這是啟動mypopup功能的按鈕:

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

除了document.getElementById('p_name')之外,每個東西都有效,它永遠不會返回一個值,就像找不到它一樣。

我相信它可以輕松完成(我是新手)。

如果表單具有name ,並且文本字段具有name ,則可以使用document.myForm.myTextbox.value

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

此外,在對DOM執行操作之前,請確保您的頁面實際上已完全加載 - 如果您的page_preview.html在文本字段加載之前運行javascript,那將導致它始終nil

為什么不為onclick事件增加價值? 我的意思是將參數傳遞給您的函數。 這樣的事情

<input type="button" onclick="mypopup(document.getElementById('p_name').value)" value="Show preview" />

在你的javascript函數中,它會是這樣的

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

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

或者錯誤發生在你的getElementById中。 請在此部分添加.value:

 var myTextField = document.getElementById('p_name');

像這樣:

 var myTextField = document.getElementById('p_name').value;

我想這會解決它。 希望有所幫助。

嘗試使用jQuery

$('#p_name').val()

document.write覆蓋頁面中的html,因此在該行執行后<input type="text" name="name" id = "p_name"/>不再存在。 嘗試修改div (或spanp等)的內容以代替輸出。

示例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.

暫無
暫無

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

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