[英]Two same javascript code behaving in different way(In different browser)
i have a form with name frmOrderReschedule
and an hidden element frmOrderReschedule
.我有一个名为
frmOrderReschedule
和一个隐藏元素frmOrderReschedule
的表单。 i tried to access it in this way-我试图以这种方式访问它-
document.frmOrderReschedule.newSalesOrderNumber.length
it gave me error document.frmOrderReschedule.newSalesOrderNumber.length is undefined
, but when i try in fallowing way it works properly它给了我错误 document.frmOrderReschedule.newSalesOrderNumber.length is
undefined
,但是当我尝试休闲方式时它可以正常工作
document.getElementsByName('newSalesOrderNumber').length;
this is happening in Mozila only.Any one can throw some light on it, why it's happenning like this.这仅在 Mozilla 中发生。任何人都可以对此有所了解,为什么会这样。 Thanks in Advance!!!
提前致谢!!!
Following your comment I deduct, that the field can be present one or multiple times.根据您的评论,我推断该字段可以出现一次或多次。 In that case
document.frmOrderReschedule.newSalesOrderNumber
(or document.forms["frmOrderReschedule"].elements["newSalesOrderNumber"]
) can return different types.在这种情况下
document.frmOrderReschedule.newSalesOrderNumber
(或document.forms["frmOrderReschedule"].elements["newSalesOrderNumber"]
)可以返回不同的类型。
If there are multiple controls, it will return a collection, which will have a length
property.如果有多个控件,它将返回一个集合,该集合将具有一个
length
属性。 If there is only one control, then it will return a direct reference to that control, which - obviously - doesn't have a length.如果只有一个控件,那么它将返回对该控件的直接引用,显然该控件没有长度。 That means, if you use that syntax you need to distinguish between the two variants (or even three variant, in case the field isn't there):
这意味着,如果您使用该语法,则需要区分两个变体(甚至三个变体,以防该字段不存在):
var x = document.forms["frmOrderReschedule"].elements["newSalesOrderNumber"];
if (x) {
if (x.length) {
alert("There are " + x.length + " controls.")
} else {
alert("One control with value: " + x.value);
}
} else {
alert("None");
}
Working example: http://jsfiddle.net/H4Lks/1/工作示例: http://jsfiddle.net/H4Lks/1/
document.getElementsByName('newSalesOrderNumber')
on the other hand always returns a collection, even if there are none or one, so it always has a length
.另一方面,
document.getElementsByName('newSalesOrderNumber')
总是返回一个集合,即使没有集合或一个集合,所以它总是有一个length
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.