所以我试图在表单提交中阻止onSubmit.我有两个问题.
1)从哪个e参数传入?
2)为什么e未定义,因此无法正确阻止默认操作?每次刷新页面都是我试图阻止的动作
Quentin.. 5
传入的e参数在哪里?
无处
为什么e未定义,因此无法正确阻止默认操作?
因为没有调用该函数.
onSubmit={func}
你的JavaScript功能:
开始一个块(没有实际效果)
提到一个函数名称(由于你没有调用它,它与操作符或任何东西组合而没有效果)
结束块
一切都没有.
onsubmit属性的正确语法是:
onsubmit="func(event);"
...你实际上调用了func
它,并且你传递了它试图传递它的参数.(内部事件属性获取event
自动调用的参数).
绑定事件与HTML被认为是不好的做法,他们带来讨厌的陷阱.通常首选将事件处理程序与JS绑定.
document.querySelector("form") .addEventListener("submit", func);
现在func
是事件处理程序本身,它将事件对象作为第一个参数,因为这是事件处理程序获得的.
请注意,箭头功能是:
匿名,这使得它们在调试器中使用起来变得不那么有用了
捕获当前值this
(对于事件处理程序通常不受欢迎,因为它会阻止您使用this
以获取处理程序绑定的元素).
函数声明通常是优选的.
传入的e参数在哪里?
无处
为什么e未定义,因此无法正确阻止默认操作?
因为没有调用该函数.
onSubmit={func}
你的JavaScript功能:
开始一个块(没有实际效果)
提到一个函数名称(由于你没有调用它,它与操作符或任何东西组合而没有效果)
结束块
一切都没有.
onsubmit属性的正确语法是:
onsubmit="func(event);"
...你实际上调用了func
它,并且你传递了它试图传递它的参数.(内部事件属性获取event
自动调用的参数).
绑定事件与HTML被认为是不好的做法,他们带来讨厌的陷阱.通常首选将事件处理程序与JS绑定.
document.querySelector("form") .addEventListener("submit", func);
现在func
是事件处理程序本身,它将事件对象作为第一个参数,因为这是事件处理程序获得的.
请注意,箭头功能是:
匿名,这使得它们在调试器中使用起来变得不那么有用了
捕获当前值this
(对于事件处理程序通常不受欢迎,因为它会阻止您使用this
以获取处理程序绑定的元素).
函数声明通常是优选的.