【发布时间】:2020-08-30 22:38:05
【问题描述】:
所以,我有一个表单,我希望有两个按钮,每个按钮都会将输入的数据保存到不同的位置。我不确定表单是否是执行此操作的正确方法,因为按下“输入”按钮应该激活提交功能,当有两种不同的提交选项时,该功能不起作用。我在这里遇到的其他解决方案似乎主要使用 PHP,但我使用 Firbase 作为我的后端,所以我的解决方案必须使用 Javascript。一个按钮会将输入的链接保存到书签集合,另一个按钮会将其保存到收藏夹集合。
这是我的尝试(不起作用):
form.addEventListener('submit', (e) => {
e.preventDefault();
const btnName = document.getElementsByClassName('btn-type').name;
console.log(btnName);
if (btnName === 'save_bookmark') {
let theCurrentUser = auth.currentUser;
db.collection('users/'+ theCurrentUser.uid +'/bookmarks').add({
website: form['website'].value,
url: form['url'].value
}).catch(err => {
console.log(err.message);
})
} else if (btnName === 'save_favorite') {
db.collection('favorites').add({
website: form['website'].value,
url: form['url'].value
});
}
form.website.value = '';
form.url.value = '';
})
这里是对应的HTML:
<div class='row logged-in show-none'>
<form class='col s12' id='add-bookmark'>
<div class='row'>
<div class='input-field col s4'>
<input type='text' name='website' placeholder='Enter name of bookmark'>
</div>
<div class='input-field col s4'>
<input type='text' name='url' placeholder='Enter link to bookmark'>
</div>
<div class='input-field col s1'>
<button class='btn waves-effect waves-light' name='save_bookmark' value='save'>Save</button>
</div>
<div class='input-field col s1'>
<button class='btn waves-effect waves-light btn-type' name='save_favorite' value='favorite'>Favorite</button>
</div>
</div>
</form>
</div>
【问题讨论】:
标签: javascript html forms firebase submit