Javascript 为什么是event.preventDefault();不在这里工作?
浏览器URL不应被更改,但无论如何都会被更改。cityNameSubmit按钮的事件侦听器中的event.preventDefault()应该阻止此操作Javascript 为什么是event.preventDefault();不在这里工作?,javascript,html,Javascript,Html,浏览器URL不应被更改,但无论如何都会被更改。cityNameSubmit按钮的事件侦听器中的event.preventDefault()应该阻止此操作 <!DOCTYPE html> <html> <head> <script> function bindButton() { document.getElementById('cityNameSubmit').addEventListener('click', fu
<!DOCTYPE html>
<html>
<head>
<script>
function bindButton() {
document.getElementById('cityNameSubmit').addEventListener('click', function (event) {
event.preventDefault();
})
}
</script>
</head>
<body>
<form>
<fieldset>
<legend>Choose a City</legend>
<input type="text" name="cityName" id="cityName">
<input type="submit" id="cityNameSubmit">
</fieldset>
</form>
</body>
</html>
函数bindButton(){
document.getElementById('cityNameSubmit')。addEventListener('click',函数(事件){
event.preventDefault();
})
}
选择一个城市
您创建了一个函数,但忘记调用此函数。试试这个:
<script>
function bindButton() {
document.getElementById('cityNameSubmit').addEventListener('click', function (event) {
event.preventDefault();
})
}
window.onload = function() {
bindButton();
}
</script>
函数bindButton(){
document.getElementById('cityNameSubmit')。addEventListener('click',函数(事件){
event.preventDefault();
})
}
window.onload=函数(){
bindButton();
}
您需要在某个地方调用函数bindButton()
,或者只需删除此函数定义,然后离开即可
document.getElementById('cityNameSubmit').addEventListener('click',function(event){
event.preventDefault();
})
事实上,在实际代码中,您只是声明函数
bindButton()
,您必须调用它才能附加事件,例如在body onload
事件中,使用
如下所示:
函数bindButton(){
document.getElementById('cityNameSubmit')。addEventListener('click',函数(事件){
event.preventDefault();
log(“阻止表单提交!”);
})
}
选择一个城市
调用了bindButton
的位置?无法删除函数定义,因为在JavaScript执行点没有“cityNameSubmit”id。如果无法删除它,则只需在定义后调用此函数:函数bindButton(){..}bindButton()代码>不在定义之后,必须在创建
后调用,以避免错误。在bindButton()时刻,仍然没有具有该ID的元素代码>呼叫。解决方案可以是在HTML结尾单独的SCRIPT
块,或者在onLoad
事件中调用func。如果他试图阻止表单被发送,我宁愿将onsubmit=“myFunction()”
设置为表单本身,然后只使用myFunction(){event.preventDefault();}
相反。我认为iLife也可以在这里使用,是吗?@cst1992是的,事实上,我只是编辑了我的答案以包含一个。