Похоже, вы используете какой-то язык на стороне сервера, смешанный с javascript.
Что на самом деле оценивает txtname.ClientID
и что находится на вашей странице.
Весьма вероятно, что вы не выбираете фактический элемент с помощью вызова document.getElementById
.
Chrome и IE может справиться с этим одним способом (вернуть пустую строку при попытке доступа к значению)
Хотя Firefox может справиться с этим другим способом (вернуть ноль, вернуть ошибку при попытке получить значение из нулевого объекта и остановить обработку javascript).
Чтобы увидеть, как это работает, попробуйте открыть файл ниже в Firefox. Первые две попытки (при наличии нулевой проверки) будут правильно сообщать о найденных или не найденных условиях.
Со вторыми двумя попытками (когда проверка нуля не установлена), первая (найденный элемент) работает нормально, но вторая не удалась, потому что document.getElementById
возвращает ноль, и 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>