我正在开发一个asp.net应用程序,我想让它至少与所有3个主要浏览器(Internet Explorer,Firefox,Chrome)兼容。
在某些页面中,我需要通过javascript访问表单元素。 这样做的正确方法是什么,以便它适用于所有浏览器?
我一直在做这样的事情
document.forms[0].elements["nroErros"].value
例如,访问我的“nroErros”隐藏字段,即使这适用于IE,它似乎在Firefox上无法正常工作。
所以,问题是,使它始终有效的正确方法是什么?
答案 0 :(得分:3)
确定的方法是给他们一个ID并使用document.getElementById
或jQuery $ selector。
答案 1 :(得分:1)
使用:
document.getElementById('nroErros');
您可能需要考虑ASP.NET名称修改,在这种情况下您可以执行以下操作:
document.getElementById('<%= nroErros.ClientID %>');
答案 2 :(得分:1)
我建议您使用document.getElementById('nroErros').value
答案 3 :(得分:1)
它对我有用:http://jsfiddle.net/6GJsy/
我认为这是最常见的跨浏览器解决方案(如果您将elements[elementName]
替换为elements[elementNumber]
)。
但是,作为替代方案,您可以使用:
document.formname.elementname.value; // simplest IMO
document.forms[formnumber].elements[elementnumber].value; // most cross-browser solution
document.forms[formname].elements[elementname].value;
document.getElementById(elementId).value;
document.getElementByName(elementName).value; // not supported in some browsers