gpt4 book ai didi

javascript - 为什么表单提交的 addEventListener 不起作用?

转载 作者:行者123 更新时间:2023-11-28 10:17:50 24 4
gpt4 key购买 nike

我很难处理 addEventListener“提交”表单。这是脚本:

<html>
<head>
<title>Testing Hehe</title>
</head>
<body>
<form action="" method="post">
<input type="text" name="q" onclick="this.parentNode.submit();" />
<input type="submit" value="Testing" />
</form>
<script type="text/javascript">
console.log(document.readyState);
window.onload = function(){
console.log(document.readyState);
document.forms[0].addEventListener('submit',function(e){
e.preventDefault();
},false);

var form = document.createElement('form');
form.method= "post";
var input= document.createElement('input');
input.type = "text";
input.name = "test";
input.addEventListener('click',function(){
form.submit();
},false);
form.appendChild(input);
var input2= document.createElement('input');
input2.type = "submit";
input2.name = "sbt";
form.appendChild(input2);
form.addEventListener('submit',function(e){
alert("test");
e.preventDefault();
},false);
document.body.appendChild(form);
}
</script>
</body>
</html>

<?php
if($_POST){
print_r($_POST);
exit;
}
?>

从上面的脚本中,我在单击提交按钮时成功杀死了表单提交事件,但是当我将提交触发器更改为其他部分时,例如单击文本框时,“提交”事件仍然直接发布。我不明白为什么会发生以及如何解决这个问题..

感谢您的关注:-)您的回答对我来说非常有用:-)

最佳答案

而不是使用:

input.addEventListener('click',function(){
form.submit();
},false);

您可以使用:

input.addEventListener('click',function(){
input2.click();
},false);

只需确保将 var input2= document.createElement('input'); 移到它之前即可。

示例:http://jsfiddle.net/niklasvh/wcpx4/

关于javascript - 为什么表单提交的 addEventListener 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6242789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com