3

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

我有这个 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; 
}

我想以某种方式获取表单名称,但是这段代码不起作用。

希望得到帮助,谢谢!

4

4 回答 4

5

给你

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

F已经是表格了,不用用.Form.

由于表单是一个元素,因此您可以使用.name.

这是在此处的 DOM 规范中定义的:

DOMString 类型的名称

命名表单。

演示

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

于 2013-05-24T09:42:15.653 回答
3

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

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

然后:

document.forms['foo'].name

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

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

于 2013-05-24T09:48:18.927 回答
-1
  var  theForms = document.getElementsByTagName("form");  
    for(i=0;i<theForms.length;i++)  
    alert(theForms[i].name);  

或者如果你只有一种形式,那么 theForms [0].name直接使用

于 2013-05-24T09:43:13.817 回答
-3

如果你使用 Jquery。您可以通过以下方式获取 attr:

$("form").attr("name"); // Register
于 2013-05-24T09:42:10.017 回答