Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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 firefox不按名称获取元素_Javascript_Firefox - Fatal编程技术网

Javascript firefox不按名称获取元素

Javascript firefox不按名称获取元素,javascript,firefox,Javascript,Firefox,这段代码似乎不适用于Firefox,但在Chrome和IE上运行时没有任何问题: f = document.forms["form1"]; var nombre = f.elements.item("nombre").value; var email = f.elements.item("email").value; var coment = f.elements.item("coment").value; 与其将相应的值分配给变量,它只是对所有变量重复相同的值,因此假设输入nombre具有值

这段代码似乎不适用于Firefox,但在Chrome和IE上运行时没有任何问题:

f = document.forms["form1"];
var nombre = f.elements.item("nombre").value;
var email = f.elements.item("email").value;
var coment = f.elements.item("coment").value;
与其将相应的值分配给变量,它只是对所有变量重复相同的值,因此假设输入
nombre
具有值
john
email
coment
也将具有
john
,即使表单的输入框中的值不同

那么如何相应地检查这些值呢?

您也可以试试

var nombre = document.getElementById.item.value; //for example
你也可以试试

var nombre = document.getElementById.item.value; //for example
这样做:

var f = document.getElementById( 'form1' );
var nombre = f.elements.namedItem( 'nombre' ).value;
var email = f.elements.namedItem( 'email' ).value;
var coment = f.elements.namedItem( 'coment' ).value;
现场演示:像这样做:

var f = document.getElementById( 'form1' );
var nombre = f.elements.namedItem( 'nombre' ).value;
var email = f.elements.namedItem( 'email' ).value;
var coment = f.elements.namedItem( 'coment' ).value;

实时演示:

向我们展示一些表单的代码。向我们展示一些表单的代码。谢谢。这解决了问题,只是出于好奇,为什么m first code在firefox上不工作,但在其他浏览器上正常工作?@HectorDanielZebaduaJerez firefox没有实现
元素。项(名称)
表单。在Firefox中,您可以执行
elements[name]
elements[index]
。。。阅读此处:根据规范,
方法采用整数。因此,所有字符串都被转换为整数(尤其是整数0)。如果您想从
form.elements
中按名称获取项目,请使用namedItem。@BorisZbarsky是的
.namedItem()
而不是
.item()
。但是,
.elements.namedItem(name)
不是必需的,因为
.elements[name]
也可以工作。@cimevidas它们实际上并不相等。例如,
.elements[“length”]
将返回列表的长度,而不是名为
length
的项。类似于
.elements[“item”]
:将返回函数对象,而不是名为
item
的元素。如果列表上设置了任何expandos,则这些操作将隐藏访问的
[]
表单,而不是
namedItem
表单。如果您使用的文本字符串与HTMLCollection原型链上的任何属性都不匹配(并且永远不会随着规范的变化而匹配!),并且知道没有expandos,那么
[]
表单是正确的。谢谢,这解决了问题,出于好奇,为什么m first code在firefox上不工作,但在其他浏览器上正常工作?@HectorDanielZebaduaJerez firefox没有实现
元素。item(name)
表单。在Firefox中,您可以执行
elements[name]
elements[index]
。。。阅读此处:根据规范,
方法采用整数。因此,所有字符串都被转换为整数(尤其是整数0)。如果您想从
form.elements
中按名称获取项目,请使用namedItem。@BorisZbarsky是的
.namedItem()
而不是
.item()
。但是,
.elements.namedItem(name)
不是必需的,因为
.elements[name]
也可以工作。@cimevidas它们实际上并不相等。例如,
.elements[“length”]
将返回列表的长度,而不是名为
length
的项。类似于
.elements[“item”]
:将返回函数对象,而不是名为
item
的元素。如果列表上设置了任何expandos,则这些操作将隐藏访问的
[]
表单,而不是
namedItem
表单。如果您使用的文本字符串与HTMLCollection原型链上的任何属性都不匹配(而且永远不会随着规范的变化而匹配!),并且知道没有expandos,那么
[]
表单是正确的。