文本框字符校验:如何验证输入字符数是否恰好为11位
问题修复说明
你代码里的核心问题有两个:
- 你取到的
l是input元素对象本身,不是输入框里的文本内容,需要先取.value拿到输入的字符串,再获取长度才是输入的字符数 - 条件判断的逻辑和输出内容写反了,满足长度等于11的时候你输出了「不足11字符」的提示,和预期不符
另外还有个小优化点:win变量没有加声明,默认会变成全局变量,最好补充let/var声明,写完新窗口内容后建议调用win.document.close()结束写入。
修正后的完整代码
<form name="formz"> <input type='text' name='numbere' id="p" maxlength="11"> </form> <button onclick="writee()">x</button> <script> function writee(){ let win = window.open(" ","tab","width=300,height=350") win.document.open() // 先取input的value值,再获取长度 let inputVal = document.forms["formz"].numbere.value; if(inputVal.length === 11){ win.document.write("字符数恰好为11<br/>"); }else{ win.document.write("字符数不等于11<br/>"); } win.document.close() } </script>
内容的提问来源于stack exchange,提问作者Amoon3234
相关产品推荐
相关产品推荐

