HTML与JavaScript新手求助:如何将单词统计结果写入只读文本框
问题修复方案
你的代码存在几个关键问题导致结果无法正常显示,以下是修正后的完整代码及问题说明:
修正后的完整代码
<!DOCTYPE html> <html> <head> </head> <body> <p>input details </p> <textarea id="input"></textarea> <div> <br> <button onclick="myfunction()">submit</button> <br> <p>result </p> <input type="text" id="result" size="2" readonly> </div> <script> function myfunction() { // 获取输入框内容 var val = document.getElementById("input").value; // 声明单词统计变量 let words = 0; // 排除空输入的情况 if (val.trim() !== "") { // 处理首尾空格+合并多空格,再分割统计有效单词数 words = val.trim().replace(/\s+/gi, ' ').split(' ').length; } // 将统计结果写入只读文本框 document.getElementById("result").value = words; } </script> </body> </html>
关键修改点说明
- 给结果输入框添加唯一ID:原结果
<input>没有id属性,JS无法定位到目标元素,新增id="result"用于获取该文本框 - 补全函数结构:你的
myfunction函数缺少if语句的闭合}和函数本身的闭合},导致代码无法正常执行 - 优化单词统计逻辑:新增
trim()处理文本首尾空格,避免因首尾空格导致统计出无效的空字符串;用let声明words变量,避免全局变量污染 - 添加结果赋值逻辑:新增
document.getElementById("result").value = words;,将计算得到的单词数写入目标只读文本框 - 移除冗余代码:删除了无意义的
var name = document.getElementById("input").value;语句
内容的提问来源于stack exchange,提问作者Kevin longsmith
相关产品推荐
相关产品推荐

