javascript - 如何从输入字段中获取值并将其发送到服务器 firebase
问题描述
我的目标是从输入元素中获取一个值,将其存储在一个对象中并将该对象发送到 firebase。数据似乎没有保存。user.name 和 user.surname 在我输入内容后显示未定义。我试过下面的代码:
html代码:
<form>
First name:<br>
<input type="text" class="firstname"><br>
Last name:<br>
<input type="text" class="lastname">
<br><br>
<button id="button" type="submit">Submit</button>
</form>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="index.js"></script>
Javascript代码:
const but = document.getElementById("button");
const url = "https://xxxxxx.firebaseio.com/post.json";
const user = {
name: document.querySelector(".firstname").value,
surname: document.querySelector(".lastname").value
};
class Search {
constructor(query) {
this.query = query;
}
async Getresult() {
try {
axios.post(url, JSON.stringify(this.query))
.then(function (response) {
console.log(response);
})
.catch(function (error) {
alert(error);
});
} catch (error) {
alert(error);
}
}
}
const search = new Search(user);
but.addEventListener("click", function (e) {
e.preventDefault();
search.Getresult();
});
解决方案
您获取输入元素值的代码仅在加载页面时触发一次。您可以在处理 btn 单击时获取值,以确保您拥有最新数据。例子:
const but = document.getElementById("button");
const url = "https://xxxxxx.firebaseio.com/post.json";
class Search {
async Getresult(query) {
try {
axios.post(url, JSON.stringify(query))
.then(function (response) {
console.log(response);
})
.catch(function (error) {
alert(error);
});
} catch (error) {
alert(error);
}
}
}
const search = new Search();
but.addEventListener("click", function (e) {
const user = {
name: document.querySelector(".firstname").value,
surname: document.querySelector(".lastname").value
};
e.preventDefault();
search.Getresult(user);
});
如果要在构造函数中传递用户,则必须Search
在处理btn
单击时创建一个新实例:
const but = document.getElementById("button");
const url = "https://xxxxxx.firebaseio.com/post.json";
class Search {
constructor(query) {
this.query = query;
}
async Getresult() {
try {
axios.post(url, JSON.stringify(this.query))
.then(function (response) {
console.log(response);
})
.catch(function (error) {
alert(error);
});
} catch (error) {
alert(error);
}
}
}
but.addEventListener("click", function (e) {
e.preventDefault();
const user = {
name: document.querySelector(".firstname").value,
surname: document.querySelector(".lastname").value
};
const search = new Search(user);
search.Getresult();
});
推荐阅读
- vba - PowerPoint VBA 中非 CPU 密集型的睡眠/等待计时器
- xsd - 创建 Idoc 文件的 xsd
- machine-learning - 我可以通过对类进行编码将分类问题转化为回归问题吗?
- amazon-web-services - 通过 Squid 代理使用 MQTT (AWS MQ)
- java - 滑动刷新后加载更多不起作用
- chef-infra - 如何从厨师食谱访问元数据“source_url”?
- python - 为什么我的 CNN 回归网络不学习?
- visual-studio - 如何在 Azure DevOps / TFS 代码存储库中处理 C# 项目中的密码和机密
- css - Bootstrap Dropdowns 按钮不适用于 Angular 8 组件
- c# - ASP.NET Core MVC 等效于开始操作特定页面