0

英语不是我的母语习语,因此请提前为语法错误道歉。

我正在使用javascript来计算textarea的字符,代码工作顺利,显示键入时字符限制减少,使用此代码我在textarea上调用了一个php方法从数据库调用文本,这就是问题所在来了,在加载时测试页面时,它会在 textarea 上显示文本,但字符限制保持在 500,当然,如果你在 textarea 上键入显示正确的字符限制,它会改变值。

页面加载时如何显示正确的字符限制?

这是我的代码:

HTML 代码:

<tr>
<td align="center" colspan="4">
<textarea "rows="10" cols="35" onKeyPress="return charLimit(this)" onKeyUp="return characterCount(this)"><?php echo $oRep->getDescripcion(); ?> </textarea> 
</td>
</tr>

<tr>
<td align="center" colspan="4"><p><strong><span id="charCount">500</span></strong> Caracteres disponibles.</p></td>
</tr>

JS代码:

var maxLength=500;
function charLimit(el) {
    if (el.value.length > maxLength) return false;
    return true;
}
function characterCount(el) {
    var charCount = document.getElementById('charCount');
    if (el.value.length > maxLength) el.value = el.value.substring(0,maxLength);
    if (charCount) charCount.innerHTML = maxLength - el.value.length;
    return true;
}

我试图在 textarea 上添加一个事件,onchange="return charLimit(this)但没有任何变化。

4

2 回答 2

1

将此添加<body onload="characterCount(document.getElementById('text'))">到您的 body 标签中,并将 textarea 的 id 设置为“text”。

于 2013-09-18T23:27:34.180 回答
0

首先,我将为该 textarea 添加一个 id,比如说“descriptionTextArea”。其次,我会在 body 上监听 'onload' 事件(例如),在 onload 处理程序中我会这样做:

// get reference to body
var body = document.getElementsByTagName('body')[0];

// listening for onload event
body.addEventListener('load', loadHandler);

function loadHandler() {
    // get reference to our description text area
    var descriptionTextArea = document.getElementById('descriptionTextArea');

    // call method with reference to descriptionTextArea as parameter
    characterCount(descriptionTextArea);
}

这样,我们在页面加载时调用“characterCount”方法,它应该在没有用户交互的情况下正确计算字符数。

于 2013-09-18T23:17:08.790 回答