我正在使用
var txtname=document.getElementById('<%=txtname.ClientID%>').value;
if (txtName == "") ....
但在FF中这不起作用。这种情况永远不会成真。即使它没有价值。 在IE和Chrome中它的工作正常。
任何人都可以让我知道如何解决这个问题.....
答案 0 :(得分:0)
看起来你正在使用某种与javascript混合的服务器端语言。
txtname.ClientID
实际评估的内容和页面上的内容。
您很可能没有选择document.getElementById
来电的实际元素。
Chrome 和 IE 可以处理这种方式(当您尝试访问值时返回空字符串)
虽然 Firefox 可能会以另一种方式处理它(返回null,尝试从null对象获取值时返回错误,并停止处理javascript)。
要了解其工作原理,请尝试在Firefox中打开下面的文件。前两次尝试(当进行空检查时)将正确报告找到或未找到的条件。
使用后两次尝试(当没有进行空检查时),第一次(找到的元素)工作正常,但第二次失败,因为document.getElementById
返回null并且firefox不知道如何继续从这个错误。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>CSS Reset</title>
</head>
<body>
<input id="value1" type="text" value="value1"/>
<script language="javascript">
alert('finding value1 with null check');
var element = document.getElementById('value1');
if ( element == null ){
alert('not found');
}
else{
var txtname = element.value;
alert(txtname);
}
alert('finding value2 with null check');
var element = document.getElementById('value2');
if ( element == null ){
alert('not found');
}
else{
var txtname = element.value;
alert(txtname);
}
alert('finding value1 without null check');
var txtname = document.getElementById('value1').value;
alert(txtname);
alert('finding value2 without null check');
txtname = document.getElementById('value2').value;
alert(txtname);
alert('finished');
</script>
</body>
</html>
答案 1 :(得分:0)
确保您没有2个具有相同ID(或名称!..读取如下)的元素。
首先,如果您的文档中有"txtname"
和"txtName"
,并且您使用getElementById('txtName')
,则可能会在IE中获取错误的元素。 Check this
此外,IE将元素的名称视为id。 Check this
最后,请务必使用view-source检查页面的html输出,看看<%=txtname.ClientID%>
返回了什么..也许它是空字符串或者你没想到的东西。
答案 2 :(得分:0)
虽然这可能无法解决问题,但您可以将比较更改为:
if (!txtName)
....
如果txtName为null,undefined或为空字符串,则会成功。
答案 3 :(得分:0)
您应该检查ff的错误控制台。
按 CTRL + Shift + J 并检查是否发生错误。
此外,FF Plug in Firebug可以帮助您调试javascript。它提供了类似ide的调试模式。
<%=...%>
允许在JSP上使用javacode表达式,你确定这是一个正确的id,允许使用document.getElementById
吗?
答案 4 :(得分:0)
试试此代码
if ( (typeof txtName =="undefined") || (txtName.length==0) )
答案 5 :(得分:-1)
使用===代替==。