我写了一个愚蠢的示例,以查看click
或submit
事件中的哪一个首先在类型为submit
的输入上触发。
但是,当我运行它时,没有任何内容写入控制台。
单步调试器中的代码揭示了以下一系列情况。
它将首先触发click
事件处理程序,将文本“ click”写入控制台,但随后不久,该文本将从控制台中消失。
此外,永远不会触发submit
事件。
我推断执行按钮的click
事件后正在提交表单。我不明白的是为什么它没有进入我的submit
事件处理程序中?
下面是相关代码,这里是the full working example。这只是一个简单的HTML文件,您可以下载该文件并在您的计算机上试用。
(function() {
let btn = document.getElementById("btnSave");
btn.addEventListener("click", function(event) {
console.log("click");
}, false);
btn.addEventListener("submit", function(event) {
console.log("submit");
// event.preventDefault();
}, false);
console.log("All done now. Click da button, chum, click it I say!");
})();
div { margin: 20px; }
input[type="submit"] { width: 200px; height: 50px; }
<div>Look at the console and then click the button, chum!</div>
<div>
<form>
<input type="submit" id="btnSave" value="Save" width="200px" />
</form>
</div>
答案 0 :(得分:10)
我不明白的是为什么它没有进入我的提交事件处理程序中?
24.855362868957645
元素没有for ( i = 0; i < totalItemSelected; i++) {
StorageReference storage=mStorage
.child("User_Pictures")
.child(UID)
.child("Ads_pictures")
.child(MyAds.getId())
.child(System.currentTimeMillis()+"."+getFileExtension(fileUri));
storage.putFile(fileUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(getContext(), "done", Toast.LENGTH_SHORT).show();
newUri = taskSnapshot.getDownloadUrl();
assert newUri != null;
Adphotos_item adphotos_item=new Adphotos_item(newUri.toString());
// Map<String, Object> map = new HashMap<>();
// map.put("listExample", Arrays.asList(newUri.toString()));
Ref.collection("Users")
.document(UID)
.collection("MyAds")
.document(MyAds.getId())
.collection("photos")
.document()
.set(adphotos_item,SetOptions.merge());
}
});
}
事件。您需要将input
钩在submit
上,而不是submit
上。
form
({input
,如果您愿意,可以有btn.form.addEventListener("submit", function(event) {
// ^^^^^
console.log("submit");
event.preventDefault();
}, false);
,尽管btn.form
得到了更广泛的支持,并且也是standardized。或者,当然,请使用{ {1}}或btn.closest("form")
来检索btn.form
元素。)
实时示例:
getElementById
querySelector
form