请教:将Name与Surname合并为CombinedNameSurname的JS代码是否正确?
问题分析与修正方案
Hi Marius, let's break down your code and fix the issues keeping it from working correctly:
主要问题点
- 错误清空合并结果:你在把
Field1.value + Field2.value赋值给Field3.value后,立刻又执行了Field3.value = '',这直接把刚合并好的内容清空了,这是最核心的问题。 - 缺少输入字段:你的HTML里只添加了按钮,但没有定义
id为Name、Surname、CombinedNameSurname的输入框,浏览器会找不到这些元素,导致函数执行报错。
修正后的完整代码
<html> <body> <!-- 添加三个输入字段,对应你的三个字段 --> <input type="text" id="Name" placeholder="输入Name"> <input type="text" id="Surname" placeholder="输入Surname"> <input type="text" id="CombinedNameSurname" placeholder="合并结果" readonly> <button onclick="copy()">Add Qualification</button> <script type="text/javascript"> function copy() { const field1 = document.getElementById("Name"); const field2 = document.getElementById("Surname"); const field3 = document.getElementById("CombinedNameSurname"); // 合并前两个字段的值,这里加个空格分开名字和姓氏更合理 field3.value = field1.value + ' ' + field2.value; // 如果需要清空前两个字段,保留这行;不需要的话可以删掉 field1.value = ''; // 注意:不要清空field3的值! } </script> </body> </html>
额外优化说明
- 我把变量名改成了小写开头(
field1而非Field1),这是JavaScript的常规命名规范,能提升代码可读性。 - 在合并时添加了一个空格
' ',这样名字和姓氏之间不会连在一起(比如输入"John"和"Doe"会得到"John Doe"而不是"JohnDoe"),如果不需要这个空格可以直接去掉。 - 给
CombinedNameSurname字段加上了readonly属性,防止用户手动修改合并结果,要是需要允许修改的话可以去掉这个属性。
这样修改后,点击按钮就能正确把前两个字段的内容合并到第三个字段里了。
内容的提问来源于stack exchange,提问作者marius
相关产品推荐
相关产品推荐

