2016-11-06 169 views
3

我有一個問題在html中。我已經編寫了我的代碼,但現在我想在有人單擊提交按鈕後打開一個新窗口,並在此新窗口中顯示他或她輸入的文本。打開新窗口提交

<html> 
<body> 
<font face="Arial,Helvetica">Hello! 
</body> 
<p><label for="vname">Tell me something: 
<input type="text" id="vname" name="vname"> 
    </font> 
<body> 
</p> 
</label> 
<input type="submit" value="Submit" onclick="myAlert()"> 
    </html> 
+0

它必須在不同的頁面?簡單地擦除表單頁面(使其變爲空白)然後顯示文本會容易得多。 – Zackh105

+0

是的,這也可以!但我怎麼能這樣做呢? – Engineer

+1

查看我的回答,如果有幫助,請接受 – Zackh105

回答

-1

首先,您應該使用<form>。否則,<input type="submit">並沒有真正做任何事情。一旦你有了,使用window.open()

<form onsubmit="return false;"> 
    <label for="vname">Tell me something: 
    <input type="text" id="vname" name="vname"> 
    <input type="submit" value="Submit" onclick="myAlert()"> 
</form> 

和JavaScript:

function myAlert() { 
    var results = window.open(); 
    var vname = document.getElementById("vname").value; 
    results.document.write(vname); 
} 

基本上,JS獲取輸入的值,將打開一個新頁面,然後使用document.write顯示結果。

原來的答覆

(提問者要求我把這個版本我的回答的備份)
<form onsubmit="myAlert(); return false"> 
    <label for="vname">Tell me something: 
    <input type="text" id="vname" name="vname"> 
    <input type="submit" value="Submit"> 
</form> 

和JavaScript:

function myAlert() { 
    var vname = document.getElementById("vname").value; 
    document.write(vname); 
} 
+0

'document.write'是古老的,將導致ENTIRE頁面被刪除,而只是寫入新的值。正確的方法是獲取元素的DOM引用(可能最初爲空),然後將內容寫入該元素。 –

+0

不好意思打擾你,但你也可能知道我怎麼能打開一個顯示文本的新窗口? – Engineer

+0

是的 - 給我一下,我會幫你解決的。 – Zackh105

0

此代碼將讓你打開一個新窗口並用表格值填寫

function myAlert() { 
    var NewWindow= window.open(); 
    var nameValue = document.getElementById("vname").value; 
    NewWindow.document.write("<p>Some text followed by form value </p>"+ nameValue); 
    } 
+0

嘿謝謝你的回答!但不幸的是,我只得到一個空白的窗口。所以沒有輸入字段了.. – Engineer

+0

這裏是工作代碼筆連接':http://codepen.io/saa93/pen/BQyrNN –

+0

我不知道爲什麼,但我得到一個空白窗口 – Engineer

0

There ar e你缺少一些東西。您需要包含表單並阻止表單發送。這是一個讓你走向正確方向的例子!

(function(){ 
 
\t var f, s, w; 
 
\t 
 
\t f = document.forms.submit; 
 
\t 
 
\t f.addEventListener("submit", function(e){ 
 
\t \t e.preventDefault(); 
 
\t \t 
 
\t \t s = "Name: "; 
 
\t \t s += f.name.value; 
 
\t \t s += "<br/>"; 
 
\t \t s += "Last Name: "; 
 
\t \t s += f.last.value; 
 
\t \t 
 
\t \t w = window.open(); 
 
\t \t w.document.write(s); 
 
\t }); 
 
}());
<form id="submit"> 
 
\t <input type="text" id="name" placeholder="Enter Your Name"/> 
 
\t <input type="text" id="last" placeholder="Enter Your Last Name"/> 
 
\t <input type="submit" value="Submit"/> 
 
</form>