1
我很難處理addEventListener「提交」形式。下面是該腳本:爲什麼表單提交的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;
}
?>
從上面的腳本,我已經succeded時提交按鈕點擊殺表單提交事件,但是當我改變提交觸發其他部分,比如當文本框點擊,「提交」事件仍然直接發佈。 我不明白爲什麼它發生,如何解決這個問題..
感謝您的關注:-)你閱讀答題對我是很大的:-)
喜尼古拉斯,感謝那就是做工精細。但是當我們不使用提交按鈕,所以觸發器必須直接使用form.submit();我嘗試做其他示例,我認爲addEventListener無法綁定form.submit()方法,但它在我覆蓋窗體時起作用。 submit()with form.submit = function(e){e.preventDefault();嗯..它的混亂.. – Kadugedeboy 2011-06-05 13:35:45