输入值长度×8>350时添加省略号的JS代码失效问题排查
代码修复方案:输入框内容过长添加省略号
直接问题:拼写错误
你代码里的degisinput.lenght是拼写错误,正确的字符串长度属性是length,这是判断逻辑失效的根本原因。额外优化点
- 原代码只执行一次,输入框内容变化时不会重新触发判断,得加输入事件监听
- 重复触发时会多次添加省略号,需要先移除已有的再添加
- 原生JS和jQuery混写可以统一,让代码更简洁
修复后的代码:
// 监听输入框内容变化 $(".degistirilebilirinput").on("input", function() { const inputVal = $(this).val(); // 先移除已存在的省略号,避免重复添加 $(this).next(".input-ellipsis").remove(); // 正确判断字符长度 if (inputVal.length * 8 > 350) { $(this).after('<span class="input-ellipsis">...</span>'); } });
说明:
- 用
input事件监听输入框的实时变化,每次输入都重新计算判断 - 给省略号加上专属类名,方便后续精准移除,不会误删其他元素
- 统一使用jQuery语法,逻辑更连贯
内容的提问来源于stack exchange,提问作者Heval Nergiz
相关产品推荐
相关产品推荐

