

我正在使用jquery获取表单中的值,并且所有的值都被正确地获取,现在我正在尝试更新字段中的值,但我无法这样做,我正在附加表单的屏幕截图以及消防站的屏幕截图。当我更新值(例如表单映射字段中的sStemElement字段)时,它将得到更新,但更新后的值不在Form ( map )字段之外。
js:
function updateForm(form, type){
var name = $('#name_'+type).val();
var type = $('#type_'+type).val();
var sStemElement = $('#sStemElement').prop('checked');
console.log(name, type, sStemElement);
const taskForm = document.getElementById("taskform");
let editStatus = false;
let id = '';
window.addEventListener("DOMContentLoaded", async (e) => {
db.collection('Buildings').doc(buildingID).collection('rooms').doc(roomID).collection('objects').doc(objectID).get().then(doc=>{
const task = doc.data();
id = doc.id;
editStatus = true;
document.getElementById('type_Shutter').value = task.type_Shutter;
document.getElementById('name_Shutter').value = task.name_Shutter;
document.getElementById('sStemElement').value = task.sStemElement;
})
btnsEdit.forEach((btn) => {
btn.addEventListener("click", async (e) => {
try {
const doc = await getTask(e.target.dataset.id);
const task = doc.data();
taskForm["type_Shutter"].value = task.type_Shutter;
taskForm["name_Shutter"].value = task.name_Shutter;
taskForm["sStemElement"].value = task.sStemElement;
editStatus = true;
id = doc.id;
taskForm["btn-update-data"].innerText = "Update";
} catch (error) {
console.log(error);
}
});
});
});
taskForm.addEventListener("click", async (e) => {
e.preventDefault();
var type_Shutter = document.getElementById('type_Shutter').value;
var name_Shutter = document.getElementById('name_Shutter').value;
var sStemElement = document.getElementById('sStemElement').value;
try {
if (!editStatus) {
var update_data = db.collection('Buildings').doc(buildingID).collection('rooms').doc(roomID).collection('objects').doc(objectID);
update_data.update({
type_Shutter:type_Shutter,
name_Shutter:name_Shutter,
sStemElement:sStemElement,
}, {merge: true});
} else {
await updateTask(id, {
type_Shutter:type_Shutter,
name_Shutter:name_Shutter,
sStemElement:sStemElement,
})
editStatus = false;
id = '';
taskForm['btn-update-data'].innerText = 'Updated';
swal("", "DATA UPDATED!", "success");
}
taskForm.reset();
title.focus();
} catch (error) {
console.log(error);
}
});
}发布于 2021-05-16 06:33:21
有很多字段很难理解,但是如果您试图更新表单字段,我看不到任何引用。
var update_data = db.collection('Buildings').doc(buildingID).collection('rooms').doc(roomID).collection('objects').doc(objectID);
update_data.update({
type_Shutter:type_Shutter,
name_Shutter:name_Shutter,
sStemElement:sStemElement,
}, {merge: true});我在这里看不到任何名为Form的字段,但它在您的屏幕截图中。因此,update函数中的所有字段都将从表单字段中添加。
要更新表单字段中的任何内容,您可以尝试如下所示:
// const docRef = //Reference to that document
docRef.update({ "Form.sAluminum": true })这将只更新表单字段中的该字段。
https://stackoverflow.com/questions/67547738
复制相似问题