2016-11-06 170 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>