Javascript ...提交后如何在页面上保留表单的简单问题

时间:2010-10-22 08:31:29

标签: javascript forms

请参阅以下示例代码,该代码需要一年和一个日期,并在提交时显示数据...

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JavaScript</title>   
</head>
<body>
<FORM NAME="myform" ACTION="" METHOD="GET">
Enter the year to start from (eg: 2006): <BR>
<INPUT TYPE="text" NAME="year" VALUE=""><P>
Enter starting day (eg: 1= 1st Jan): <BR>
<INPUT TYPE="text" NAME="day" VALUE=""><P>
<INPUT TYPE="button" NAME="button" Value="Go!" onClick="testResults(this.form)">
</FORM>
<SCRIPT LANGUAGE="JavaScript">
function testResults (form) {

  var years = form.year.value;
  var days = form.day.value;



   for (var x = days; x <= 365; x++)
   {

        for (var y = years; y <= 2010; y++)

        {

        document.write('  ValueY='+y+'ValueX='+x+'  ')

        }
    document.write("<br />");


}

}

function to3P(n){
return (n/100).toFixed(2).replace(/\./, '');
};
</SCRIPT>
</body>
</html>

我正在尝试解决的问题是如何在document.write发生之后将页面上的表单保留下来。(因此用户无需继续按下以尝试新数据!

4 个答案:

答案 0 :(得分:1)

看起来你正在使用1995年的一个例子来编写HTML ...你应该阅读一些更现代的html / javascript教程。只需要清理几件好事:

  1. 对language =“javascript”属性进行了描述。您只需指定<script type="text/javascript">
  2. 即可
  3. 这样更好 在元素中使用小写 声明(即:<p>代替 <P>
  4. 对于你的每一个元素 打开,你需要关闭。因此对于 每个<p>,您需要一个</p>。如果有 没有结束标记,即它是 自我关闭,与<br>一样 标签,你应该写它:<br />, 就像你在 document.write代码。这使得 您的代码真正符合XHTML标准 您已在doctype中指定。
  5. 如前所述,没有理由将表单传递给javascript函数。只需通过innerHTML访问id及其值的元素。

答案 1 :(得分:0)

不要使用document.write - 如果你在页面加载后使用它,你实际上是在创建一个新文档。您可以使用javascript DOM函数,也可以只使用

<div id="results"></div>


<script> document.getElementById('results').innerHTML = "Your text here"; </script>

答案 2 :(得分:0)

document.write()应该受到指责。您通常应该不惜一切代价避免使用DOM操作和AJAX技术。请参阅herehere,特别是here,并且网上有关于此主题的一小部分报道。

答案 3 :(得分:0)

尝试写入div而不是文档,表单仍然可见

<input TYPE="button" NAME="button" Value="Go!" onClick="testResults(this.form)">
<div id="myResult/>

并在javascript中:

document.getElementById('myResult').innerHTML = 'your text here'