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

通过JavaScript获取表单名称

通过JavaScript获取表单名称,javascript,Javascript,我有一个简单的问题,但我不能在网上找到好的解决方案 我有以下HTML代码: <form name="Register" action="Register.aspx" method="post" runat="server" style="margin-top: 15px;" onsubmit="return validateProfile(this);" > 我想以某种方式获得表单名称,但这段代码就是不起作用 希望得到帮助,谢谢 如果您使用Jquery。您可以通过以下方式获取属性

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

我有以下HTML代码:

 <form name="Register" action="Register.aspx" method="post" runat="server" style="margin-top: 15px;" onsubmit="return validateProfile(this);" >
我想以某种方式获得表单名称,但这段代码就是不起作用


希望得到帮助,谢谢

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

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

function validateProfile(F) {
    alert(F.name); 
    return false;
}
F
已经是表单,无需使用
.form

因为表单是一个元素,所以可以使用访问它的名称

这在以下文件中定义:

DOMString类型的名称

给表格命名

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

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

对于(i=0;i您可能在表单中有一个名为name的控件。表单控件可用作表单的属性,使用其名称或ID作为属性名。因此,在:

<form name="foo" ...>
  <input name="name" ...>
返回对输入元素的引用,而不是表单的name属性的值(它反映了HTML name属性的值)


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

抱歉,请参阅更新的代码您尝试过F.name吗?
runat=“server”
…它还会在哪里运行?是的,请查看更新后的代码为什么不返回
返回validateProfile(“Register”);
F
是表单元素的唯一可靠引用,
与提供的代码OP不兼容。经过最新编辑后,它现在看起来与OP的代码完全相同:)@纳维采娃你介意用小提琴来说明你的问题吗?我的代码有效(针对您的原始版本),我无法理解您的代码,除非您提供更多,否则人们可能也无法理解information@NaveTseva看看这是否解决了你的问题。就像我说的,我不使用网络表单。老实说,如果你做了什么新的事情,我会认真考虑把表单转换成MVC,我花了几个星期才明白,但一旦我做到了,我就变得更有效率了,这是完全值得的。在ASP.NET MVC中,forms.name属性会被一个名为“name”的输入“污染”,这并不奇怪。例如,
然后JavaScript将使用对象(输入)而不是“ActualFormName”发出警报。至少早在IE8,如果您使用forms属性集合,并为“name”属性编制索引,那么它实际上将返回正确的名称。e、 g.
F.属性[“名称”]值<form name="foo" ...>
  <input name="name" ...>
document.forms['foo'].name