首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用javascript更新云防火墙中映射数据类型中的值?

如何使用javascript更新云防火墙中映射数据类型中的值?
EN

Stack Overflow用户
提问于 2021-05-15 14:23:53
回答 1查看 184关注 0票数 0

我正在使用jquery获取表单中的值,并且所有的值都被正确地获取,现在我正在尝试更新字段中的值,但我无法这样做,我正在附加表单的屏幕截图以及消防站的屏幕截图。当我更新值(例如表单映射字段中的sStemElement字段)时,它将得到更新,但更新后的值不在Form ( map )字段之外。

js:

代码语言:javascript
复制
 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);
      }
    });

 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-16 06:33:21

有很多字段很难理解,但是如果您试图更新表单字段,我看不到任何引用。

代码语言:javascript
复制
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函数中的所有字段都将从表单字段中添加。

要更新表单字段中的任何内容,您可以尝试如下所示:

代码语言:javascript
复制
// const docRef = //Reference to that document
docRef.update({ "Form.sAluminum": true })

这将只更新表单字段中的该字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67547738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档