<输入>标签工作在这个例子中

How does <input> tag work in this example?

本文关键字:工作 lt 输入 gt 标签      更新时间:2023-09-26

初级javascript问题。我正在努力遵循本教程创建具有限制字符的表单。

代码如下:

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个参数

  1. limitField是对键入的实际字段的引用
  2. limitCount是对用于显示剩余字符数的另一个字段的引用
  3. 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读取/写入其文本,因此这一行实际上是在说";将"剩余字符数"字段的值设置为允许的最大字符数减去已键入的字符总数"

为什么

因为编程。