Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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 - Fatal编程技术网

如何使用javascript从表单中获取信息?

如何使用javascript从表单中获取信息?,javascript,html,Javascript,Html,我有一个表单,用户可以输入一些数据,可以是复选框、单选按钮、文本字段等 当用户单击submit按钮时,我想用输入的任何数据刷新页面 <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script> </head> <body

我有一个表单,用户可以输入一些数据,可以是复选框、单选按钮、文本字段等

当用户单击submit按钮时,我想用输入的任何数据刷新页面

<html>
    <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
    </head>
<body id="ref">
<form>
    Please enter your name:<input type="text" id="name" />
    Please enter your age:<input type="text" id="age" />
</form>
<input type="button" onclick="c()" value="submit">

<script type="text/javascript">

function c() 
{
    var o = document.getElementById('ref');
    o.innerHTML = '';

    var n = document.createElement('p');
    var nam = document.getElementById('name');
    n.innerHTML = "Your name is: " + nam;
    o.appendChild(n);

    var a = document.createElement('p');
    var ag = document.getElementById('age');
    a.innerHTML = "Your age is: " + ag;
    o.appendChild(a);

    //how do i get the info from the form? because both nam and ag are coming up null

}

</script>
</body>
</html>

请输入您的姓名:
请输入您的年龄:
函数c()
{
var o=document.getElementById('ref');
o、 innerHTML='';
var n=document.createElement('p');
var nam=document.getElementById('name');
n、 innerHTML=“您的名字是:”+nam;
o、 儿童(n);
var a=document.createElement('p');
var ag=document.getElementById('age');
a、 innerHTML=“您的年龄是:”+ag;
o、 儿童(a);
//我如何从表格中获取信息?因为nam和ag都是空的
}

我猜这不起作用是因为页面刷新后会尝试按id获取元素,而id不再存在。。做这件事的正确方法是什么???

我很确定这不仅仅是javascript可以做到的。您需要使用像php这样的服务器端语言。尝试用谷歌搜索php表单,你会得到一些好结果

我敢肯定,单凭javascript是不可行的。您需要使用像php这样的服务器端语言。尝试用谷歌搜索php表单,你会得到一些好结果

您将对象与其属性混淆。在这里,您将获得“年龄”字段的
HTMLInputElement
实例:

但在这里,您使用该对象时,就好像它是一个简单的值:

a.innerHTML = "Your age is: " + ag;
HTMLInputElement
对象有一个
字段,可用于:

a.innerHTML = "Your age is: " + ag.value;
另外,这样做会完全破坏页面:

var o = document.getElementById('ref');
o.innerHTML = '';
…因为您已将ID“ref”指定给
主体
元素。完全替换
body
元素完全替换
body
元素,因此不能依赖仅作为该元素的从属元素存在的对象

通常的做法是填充一个元素,然后(可选地)删除不再需要的元素。例如():

HTML:

在那里,当按下按钮时,我移除表单并填写“result”div

如果需要(),可以动态添加“result”div:

HTML:

如果将
id
值改为
name
值(),则可以使用更简洁、更自然的语法访问字段:

HTML:

进一步阅读:

  • (大多数现代浏览器都支持)
  • (越来越多的人支持)

    • 您将对象与其属性混淆。在这里,您将获得“年龄”字段的
      HTMLInputElement
      实例:

      但在这里,您使用该对象时,就好像它是一个简单的值:

      a.innerHTML = "Your age is: " + ag;
      
      HTMLInputElement
      对象有一个
      字段,可用于:

      a.innerHTML = "Your age is: " + ag.value;
      
      另外,这样做会完全破坏页面:

      var o = document.getElementById('ref');
      o.innerHTML = '';
      
      …因为您已将ID“ref”指定给
      主体
      元素。完全替换
      body
      元素完全替换
      body
      元素,因此不能依赖仅作为该元素的从属元素存在的对象

      通常的做法是填充一个元素,然后(可选地)删除不再需要的元素。例如():

      HTML:

      在那里,当按下按钮时,我移除表单并填写“result”div

      如果需要(),可以动态添加“result”div:

      HTML:

      如果将
      id
      值改为
      name
      值(),则可以使用更简洁、更自然的语法访问字段:

      HTML:

      进一步阅读:

      • (大多数现代浏览器都支持)
      • (越来越多的人支持)

      如果只想使用java脚本更新html,可以使用输入的“.value”属性

       var a = document.createElement('p').value;
       var ag = document.getElementById('age').value;
      
      通常使用服务器端代码处理表单信息,这是通过指定表单的操作属性来完成的:

      <form action="processuserinfo.aspx">
      ...
      </form>
      
      
      ...
      
      如果只想使用java脚本更新html,可以使用输入的“.value”属性

       var a = document.createElement('p').value;
       var ag = document.getElementById('age').value;
      
      通常使用服务器端代码处理表单信息,这是通过指定表单的操作属性来完成的:

      <form action="processuserinfo.aspx">
      ...
      </form>
      
      
      ...
      
      我之所以使用此选项,是因为我尝试了jsp,但我的公司serlvets等导致参数在加载新页面时“消失”。。顺便说一句,我是一名实习生,只是想知道一些事情=/是的,可以。如果你愿意的话,你可以完全重写整个页面。没关系,我得到了。。在我更改html主体之前,必须获取元素。。谢谢你的帮助!我使用这个的原因是因为我尝试了jsp,但我的公司serlvets等导致参数在新页面加载时“消失”。。顺便说一句,我是一名实习生,只是想知道一些事情=/是的,可以。如果你愿意的话,你可以完全重写整个页面。没关系,我得到了。。在我更改html主体之前,必须获取元素。。谢谢你的帮助!消极的DOM通过document.forms和元素提供了方便的访问,因此无需反复调用gebi,只需
      document.theForm.age.value='42'
      @downvotersteptoight:感谢您留下评论。否,
      document.theForm.age
      与OP的标记一起失败,因为表单和字段没有名称;他们有身份证。(人们可以通过
      窗口
      对象访问它们,但如果您不小心命名,它会很拥挤,这会带来麻烦。)如果我们更改OP的标记,是的,我们可以这样做。但我们如何访问这些字段与OP的主要问题基本无关。@T.J.Crowder,啊,我对没有姓名attibutes的错误进行了纠正,我没有注意到您的代码片段与原始代码片段之间的差异。请问通过
      窗口访问是什么意思?看来我没能取下我的d
      
       var a = document.createElement('p').value;
       var ag = document.getElementById('age').value;
      
      <form action="processuserinfo.aspx">
      ...
      </form>