我正在用纯JavaScript替换一些jQuery代码,但是在表单提交事件监听器上遇到了问题。
<!-- html -->
<form name="myForm">
<input type="text" name="name" />
<button type="button">Click me</button>
</form>
/* jquery code that works */
$myForm = $("form[name=myForm]")
$("form button").on("click", function(e){
$myForm.submit()
})
$myForm.on("submit", function(e){
e.preventDefault()
console.log("Submitting form")
})
/* vanilla js replacement */
myForm = document.querySelector("form[name=myForm]")
myForm.querySelector("button").addEventListener('click', function(){
myForm.submit()
})
myForm.addEventListener('submit',function(e){
e.preventDefault()
console.log("Submitting form")
})
在纯 JavaScript 中,当表单以编程方式提交时,似乎不会触发表单提交事件侦听器。如何解决这个问题?
type="button"
:<button type="button">点击我</button>
(如果问题与我在其他评论中提供的polyfil相关,则您可以考虑向存储库添加一个问题) - Nick Parsons