通过JavaScript获取表单名称

时间:2013-05-24 09:39:30

标签: javascript

我有一个简单的问题,但我无法在网上解决好的解决方案。

我有这个HTML代码:

 <form name="Register" action="Register.aspx" method="post" runat="server" style="margin-top: 15px;" onsubmit="return validateProfile(this);" >

这个JavaScript代码

function validateProfile(F) {
var G = F.name; 
}

我想以某种方式获取表单名称,但此代码无效。

希望得到帮助,谢谢!

5 个答案:

答案 0 :(得分:5)

你去了

function validateProfile(F) {
    alert(F.name); 
    return false;
}

F已经是表单,无需使用.Form

由于表单是一个元素,您可以使用.name访问其名称。

这是在DOM specification here

中定义的
  DOMString类型的

名称

     

为表单命名。

Demo

注意我的JSFiddle如何包含window.validateProfile = validateProfile,因为我在DOM准备就绪后运行它,如果你的函数不是直接在脚本块中,你也可能需要这样做。

答案 1 :(得分:1)

您可能在表单中有一个名称为 name 的控件。表单控件作为表单的属性提供,使用其名称或ID作为属性名称。所以在:

<form name="foo" ...>
  <input name="name" ...>

然后:

document.forms['foo'].name

返回对input元素的引用,而不是表单的 name 属性的值(它反映了HTML name属性的值)。

解决方案是不使用与标准表单元素属性或DOM属性名称相同的表单控件的属性值(例如,不要将表单控件命名为“submit”或“reset”,因为它们将覆盖表单的提交重置方法。)

答案 2 :(得分:-1)

我想知道为什么你的代码不能正常工作

它在这里工作

function validateProfile(F) {
var G = F.name; 
    alert(G);
    return false;
}

Demo

答案 3 :(得分:-1)

  var  theForms = document.getElementsByTagName("form");  
    for(i=0;i<theForms.length;i++)  
    alert(theForms[i].name);  

或如果您只有一个表单,请直接使用theForms [0].name

答案 4 :(得分:-3)

如果您使用Jquery。你可以通过这个获得attr:

$("form").attr("name"); // Register