我正在尝试使用javascript将用户添加到列表中,我不知道为什么我的代码无效。
这是我的代码。
HMTL
<form id="myform">
<h2>Add a User:</h2>
<input id="username" type="text" name="username" placeholder="name">
<input id="email" type="email" name="email" placeholder="email">
<button onclick='addUser()' type="submit">add user</button>
</form>
<h2>UsersList:</h2>
<ul id="users"></ul>
的JavaScript
<script>
var list = document.getElementById('users');
function addUser(){
var username =document.getElementById('username').value;
var email = document.getElementById('email').value;
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(username + '' + email));
list.appendChild(entry);
}
</script>
答案 0 :(得分:2)
您需要正确处理表单提交。而不是按钮点击事件,你最好听onsubmit
表格事件:
<form id="myform" onsubmit="return addUser()">
从函数中你需要返回false来阻止表单提交:
function addUser(){
var username = document.getElementById('username').value;
var email = document.getElementById('email').value;
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(username + ' ' + email));
list.appendChild(entry);
return false;
}
另请注意,制作按钮类型button
标记也可以,但最佳做法实际上是type="submit"
。它提供的好处是您可以使用Enter键提交表单,这是一种很好且一致的表单行为。
答案 1 :(得分:1)
试试这个
<强> HTML 强>
<form id="myform">
<h2>Add a User:</h2>
<input id="username" type="text" name="username" placeholder="name">
<input id="email" type="email" name="email" placeholder="email">
<button onclick='return addUser();' type="submit">add user</button>
</form>
<h2>UsersList:</h2>
<ul id="users"></ul>
<强> JS 强>
function addUser(){
var list = document.getElementById('users');
var username =document.getElementById('username').value;
var email = document.getElementById('email').value;
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(username + ' ' + email));
list.appendChild(entry);
return false;
}
答案 2 :(得分:0)
该按钮将提交表单,将按钮类型更改为button
将修复它:
<button onclick='addUser()' type="button">add user</button>