我写了下面的代码,当用户输入他们的名字时,显示用户的名字。但是名字会立即出现和消失。这是什么问题?
html代码
<div>
<p id="names"></p>
</div>
<form method = "get" action = "">
Enter first name: <input type = "text" id = "firstName"/>
Enter last name: <input type = "text" id = "lastName"/>
<input type = "submit" value = "submit" onclick = "return firstName_lastName();"/>
</form>
Javascript程式码
function firstName_lastName() {
var firstName = document.getElementById('firstName').value;
var lastName = document.getElementById('lastName').value;
var names = document.getElementById('names');
if (firstName == "" || lastName == "") {
alert('Please fill in all the fields');
return false;
} else {
names.innerHTML = firstName + " " + lastName;
return true;
}
代码可以正常工作,但名称会立即显示和消失。
编辑:代码运行,但当点击提交按钮时,输入的名字和姓氏会出现在浏览器上,并立即消失。当任何一个或两个字段都没有填写时,警告也会很好地工作。
2条答案
按热度按时间doinxwow1#
提交按钮基本上是将表单提交到服务器并在单击时重新加载页面,但是如果您希望在提交之前进行验证,则可以使用
preventDefault
来停止页面重新加载,请参见下面的示例第一个
toiithl62#
preventDefault()方法会取消可取消的事件,表示属于该事件的预设动作不会发生。
例如,这在以下情况下非常有用:
点击“提交”按钮,防止其提交表单点击链接,防止链接跟随URL注意:并非所有事件都是可取消的。请使用cancelable属性来找出事件是否可取消。
注意:preventDefault()方法不会防止事件透过DOM进一步传播。请使用stopPropagation()方法来行程此问题。