Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么是event.preventDefault();不在这里工作?_Javascript_Html - Fatal编程技术网

Javascript 为什么是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

浏览器URL不应被更改,但无论如何都会被更改。cityNameSubmit按钮的事件侦听器中的event.preventDefault()应该阻止此操作

<!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是的,事实上,我只是编辑了我的答案以包含一个。