У меня есть следующий код, который отлично работает в IE для элемента textarea.Javascript не работает над FF
(изд: обернуты для удобства чтения)
<textarea name="mem_message" cols="25" rows="5"
onkeypress="return taLimit(this)"
onkeyup="return taCount(this,'myCounter')">
<? echo $_SESSION['mem_message']; ?>
</textarea>
Он вызывает функцию проверки:
<script language="Javascript"><!--Counter for Message Box -->
maxL=100;
var bName = navigator.appName;
function taLimit(taObj) {
if (taObj.value.length==maxL) return false;
return true;
}
function taCount(taObj,Cnt) {
objCnt=createObject(Cnt);
objVal=taObj.value;
if (objVal.length>maxL) objVal=objVal.substring(0,maxL);
if (objCnt) {
if(bName == "Netscape"){
objCnt.textContent=maxL-objVal.length;}
else{objCnt.innerText=maxL-objVal.length;}
}
return true;
}
function createObject(objId) {
if (document.getElementById) return document.getElementById(objId);
else if (document.layers) return eval("document." + objId);
else if (document.all) return eval("document.all." + objId);
else return eval("document." + objId);
}
</script>
Все вышеуказанные работы только на IE. В Firefox он даже не будет фокусироваться на коробке.
как примечание стороны: вызов последней функции «createObject» немного вводит в заблуждение, поскольку вы ничего не создаете, а скорее «получаете» его. – scunliffe
Не знаете, что вы подразумеваете под «не будет фокусироваться на коробке», вы не вызываете фокус() где бы то ни было, насколько я могу судить. Вы имеете в виду, если вы нажмете на него? Вставить в нее? –
Работает для меня ... подозревает, что ошибка находится где-то в другом месте – Greg