javascript - 通过javascript获取表单字段数据会抛出错误(值为null)
问题描述
function myFunc() {
console.log("entered");
document.write('Submitted Data');
var firstname = document.getElementById("fname").value;
var lastname = document.getElementById("lname").value;
document.writeln("Your full name is:" + firstname + lastname);
}
<form>
<label> Firstname </label>
<input type="text" name="firstname" id="fname" size="15" /> <br> <br>
<label> Lastname</label>
<input type="text" name="lastname" id="lname" size="15" /> <br> <br>
<label>
Gender :
</label><br>
<input type="radio" name="male" /> Male <br>
<input type="radio" name="female" /> Female
<br>
<br>
<input type="button" value="Submit" onclick="myFunc()" />
</form>
单击提交后,它没有获得名字并在控制台中显示错误为 null 值。有人可以帮忙吗?整个代码保存在一个 HTML 页面中
解决方案
那是因为这条线document.write('Submitted Data');
。document.write
删除现有的 html,因此在您使用的下一行中document.getELementById
找不到 dom 元素
function myFunc() {
var firstname = document.getElementById("fname").value;
var lastname = document.getElementById("lname").value;
document.writeln("Your full name is:" + firstname + lastname);
}
<body bgcolor="Lightskyblue">
<br>
<br>
<form>
<label> Firstname </label>
<input type="text" name="firstname" id="fname" size="15" /> <br> <br>
<label> Lastname</label>
<input type="text" name="lastname" id="lname" size="15" /> <br> <br>
<label>
Gender :
</label><br>
<input type="radio" name="male" /> Male <br>
<input type="radio" name="female" /> Female
<br>
<br>
<input type="button" value="Submit" onclick="myFunc()" />
</form>
</body>
推荐阅读
- c - 在 NodeJS 中,如何读取 C 程序的输出?
- git - 给定一个文件,我可以检查 git repo 的历史记录中是否存在相同的文件?
- html - href 链接适用于一个项目,但不适用于另一个
- javascript - 如何用表中的前一个值增加表中的值?
- angular - 仅在应用启动时从 Firestore 获取数据,然后从那里分发
- css - 渲染高度和客户端高度不相同
- javascript - 表情符号 Facebook Messenger - Pesisten 菜单
- java - 为什么这些变量在这个泛型方法中有不同的类型?
- c# - 只有连续两次才能将对象旋转到同一方向?
- swi-prolog - 通过 SWI-Prolog 命令行启动 PceEmacs