通过JavaScript获取表单名称
我有一个简单的问题,但我不能在网上找到好的解决方案 我有以下HTML代码:通过JavaScript获取表单名称,javascript,Javascript,我有一个简单的问题,但我不能在网上找到好的解决方案 我有以下HTML代码: <form name="Register" action="Register.aspx" method="post" runat="server" style="margin-top: 15px;" onsubmit="return validateProfile(this);" > 我想以某种方式获得表单名称,但这段代码就是不起作用 希望得到帮助,谢谢 如果您使用Jquery。您可以通过以下方式获取属性
<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.属性[“名称”]值可悲的是,这是不可避免的。e、 g.设计数据库的人使用“name”作为字段名,并且用于发回数据的操作脚本不可访问(后端代码,您正在编写用户界面),因此您非常需要一个名为“name”的文本输入。在现代浏览器中,form.getAttribute(“name”)似乎返回实际的表单名称,但在较旧的浏览器中却不返回。我们刚刚发现form.attributes[“name”]。value的作用(返回表单名称,而不是输入对象)可以追溯到IE 8,我相信IE7。
<form name="foo" ...>
<input name="name" ...>
document.forms['foo'].name