在下面的JavaScript中,我遇到的问题是JavaScript只适用于一个文本框而不适用于所有文本区域,因为html中生成的ID对于所有文本区域都是不同的。对此有任何帮助
<font>Maximum Number of characters for this text box is 255.<br>
<textarea runat="server" id="txtAnswerMain" onkeypress="return taLimit(this)" onkeyup="return taCount(this,'myCounter')"
name="Description" rows="7" wrap="physical" cols="40">
</textarea>
这是我使用的java脚本适用于单个文本区域但是当我应用于动态创建的文本区域时它不起作用
<script language="Javascript">
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>
答案 0 :(得分:0)
如果我使用JQuery动态添加textarea,它可以正常工作。
<script type="text/JavaScript">
$(document).ready(function(){
$('#divToAddTo').append('<textarea id="txtAnswerMain2" onkeypress="return taLimit(this)" onkeyup="return taCount(this,'myCounter')" name="Description" rows="7" wrap="physical" cols="40">');
$('#divToAddTo').append('</textarea>');
});
</script>