【发布时间】:2021-10-24 12:31:45
【问题描述】:
我有一些代码可以将一些文本保存到 Firestore 并且可以工作,但它仅在您键入后单击文本字段时才有效。
这会保存到 Firestore。我已将 getElementById 之后的 ("...") 之间的文本更改为按钮的 id,但这并没有保存任何内容。但是,如果我将它作为文本字段的 id,则在键入后单击文本字段时会保存文本。
document.getElementById("hrtitle").addEventListener("click", function saveHeroTitle() {
const title = document.getElementById('hrtitle').value;
console.log(title);
const heroTitleRef = doc(db, "pages", "homePage");
// something around line 42 vv
setDoc(heroTitleRef, {
heroText: title,
}, {merge: true}).then(function() {
console.log("Hero Title Saved");
}).catch(function(error){
console.log("Error: ", error);
});
});
文本字段和按钮的代码。
<label for="uetitle">Update Hero Title</label>
<input type="text" id="hrtitle" name="hrtitle">
<button class="save-button" id="hrtitleSave" type="submit">Save</button>
如何在单击按钮时获取要保存的文本?
【问题讨论】:
-
您可以将输入字段的 ID 更改为其他内容吗?按钮的 ID 似乎相同。也应该是
document.getElementById("hrtitleSave") -
是的,文本字段 id 在处理这里时是一个错误,我在原始代码中从未使用过“保存”。当我按照您上面的建议添加保存时,什么都没有保存?
-
尝试将按钮类型更改为
"button",也许正在执行默认操作?单击按钮时页面是否刷新?
标签: javascript html google-cloud-firestore