初学者javascript问题。我试图遵循此tutorial来创建具有受限字符的表单。
代码如下:
1.限制文字的功能:
<script language="javascript" type="text/javascript">
function limitText(limitField, limitCount, limitNum) {
if (limitField.value.length > limitNum) {
limitField.value = limitField.value.substring(0, limitNum);
} else {
limitCount.value = limitNum - limitField.value.length;
}
}
</script>
2.创建文本区域
<form name="myform">
<textarea name="limitedtextarea" onKeyDown="limitText(this.form.limitedtextarea,this.form.countdown,100);"
onKeyUp="limitText(this.form.limitedtextarea,this.form.countdown,100);">
</textarea><br>
<font size="1">(Maximum characters: 100)<br>
You have <input readonly type="text" name="countdown" size="3" value="100"> characters left.</font>
</form>
我了解代码与这行代码的区别:
You have <input readonly type="text" name="countdown" size="3" value="15"> characters left.</font>
如何/为什么显示文本区域内的其余字符?
抱歉,一个非常简单的问题,我只是从JS / HTML开始,这确实使我感到困惑。
最佳答案
怎么样
每次在文本区域内向上或向下键入时,都会执行一个功能。该函数需要3个参数limitField
是对要键入的实际字段的引用limitCount
是对另一个字段的引用,该字段用于显示剩余字符数limitNum
-是您希望在limitField
中允许的最大字符数
该方法的逻辑类似于(伪代码)
if the number of characters typed is greater than the mmaximum allowed characters
truncate the field value back to the maximum allowed
otherwise
display the number of remaining characters in the remaining count field
最后一行似乎是造成混乱的根源,让我们回到真实的代码上:
limitCount.value = limitNum - limitField.value.length;
在此行中,
limitCount
是对您突出显示的行中字段的引用,因为您对该问题感到困惑。 limitNum
是允许的最大字符,而limitField
是要键入的文本区域。任何输入都可以使用.value
读取/写入其文本,因此该行的字面意思是“将剩余字符字段的值设置为允许的最大字符数减去已键入的字符总数”。为什么
因为编程。