gpt4 book ai didi

javascript - 将对象/字段传递给 javascript 函数 : this. [Control] vs this.form.[control]

转载 作者:行者123 更新时间:2023-11-30 18:33:17 24 4
gpt4 key购买 nike

JavaScript脚本:

   <script type="text/javascript">
function limitText(limitField, limitCount, limitNum){
if (limitField.value.length > limitNum)
limitField.value = limitField.value.substring(0, limitNum);
else{
if (limitCount != null)
limitCount.value = limitNum - limitField.value.length;
}
}
</script>

这个有效:

<form name="myForm">
<textarea name="myTextArea" id="myTextArea" onKeyDown="limitText(this.form.myTextArea, this.form.remCount, 10);"></textarea>
<label name="remCount" id="remCount"></label>
</form>

但这不是:

<textarea name="myTextArea" id="myTextArea" onKeyDown="limitText(this.myTextArea, this.remCount, 10);"></textarea>
<label name="remCount" id="remCount">Chars Left </label>

用Chrome调试,如果我不使用form方法,那么limitFieldlimitCount都是null,但是在this.myTextArea 不是。无论如何,是否可以在不将字段包含在表单中的情况下使用该功能?谢谢

最佳答案

只要通过this通过它自己。它将是元素本身。要查找“计数”标签,您始终可以使用 document.getElementById()找到它。

此外,尽管这不是您问题的一部分:请注意,当值包含硬换行符时,浏览器会报告文本区域长度的不同值;也就是说,由于用户键入“Enter”键而出现的换行符。一些浏览器将换行符视为相当于 2 个字符,因为实际上当 <textarea> 时它们 是两个字符长。从表单发回服务器。然而,一些浏览器只报告一个换行符为 1 个字符长,即使它们遵循相关规范并发送 <textarea>值返回 2 个字符的换行符。

现代浏览器支持 maxlength <textarea> 上的属性元素,但由于上述原因,它在 Chrome 和 Firefox 中无法正常工作(尽管我认为正在通过 WebKit 进行修复)。

关于javascript - 将对象/字段传递给 javascript 函数 : this. [Control] vs this.form.[control],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9005178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com