【问题标题】:Populate modal with firebase data使用 Firebase 数据填充模态
【发布时间】:2021-02-05 18:44:58
【问题描述】:

我创建了一个模式来将数据保存到 DB,但现在我试图打开一个模式,其中包含已保存的当前值来编辑它们。但我没有成功

这里是编辑模式(从预览模式修改):

<!-- edit Modal -->
  <div class="modal fade" id="editModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          
          <h4 class="modal-title">Modifique o incidente</h4>

          <button type="button" class="close" data-dismiss="modal">&times;</button>

        </div>
        <div class="modal-body">
            <form>

                <div class="form-group">
                  <label for="exampleFormControlInput1">Local</label>
                  <input type="text" class="form-control" id="localEdit" placeholder="Onde aconteceu?">
                </div>
               
                <div class="form-group">
                  <label for="exampleFormControlTextarea1">Descricao</label>
                  <textarea class="form-control" id="descricaoEdit" rows="3"></textarea>
                </div>

                <div class="form-group">
                    <label for="exampleFormControlInput1">Link da Imagem</label>
                    <input type="text" class="form-control" id="imgLinkEdit" placeholder="Tem imagem?">
                  </div>


                <button type="button" class="btn btn-default" type="submit" onclick="updateCard(event)">Adicionar</button>
                <button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button>
              </form>

        </div>

      </div>
      
    </div>
  </div>

这是我在前面创建卡片的 javascript 方式:


               const content = `
                    <div class="col-md-4">
                      <div class="card mb-4 box-shadow">
                        <img class="card-img-top data-imgLink" data-src="${doc.data().foto}">
                        <div class="card-body">
                          <p class="card-text" id="data-local">Local: ${doc.data().local}</p>
                          <p class="card-text data-description">Descricao: ${doc.data().descricao}</p>
                          <p class="card-text data-situation">Situacao: ${doc.data().situacao}</p>
                          <button type="button" class="btn btn-sm btn-outline-secondary edit-button" id="editButton" data-toggle="modal" data-target="#editModal">Edit</button>
                          <button type="button" class="btn btn-sm btn-outline-secondary" type="submit" onclick="deleteCard('${doc.id}')">Apagar</button>
                          <div class="d-flex justify-content-between align-items-center">
                            <div class="btn-group">
                       
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                    `;


这是我尝试创建的函数,用于将值传递给编辑模式 (我只尝试第一个输入):


$(document).on("click", ".edit-button", function(){

    var local = $(this).find('#data-local').text();
    $('#localEdit').parent().val(local);

    console.log("clicado");
});


如您所见,我将正确的 html id 传递给函数。

我做错了什么的任何线索?

谢谢

【问题讨论】:

    标签: javascript html jquery firebase


    【解决方案1】:

    你有一个逻辑错误,$('#localEdit') 将搜索 id 为 localEdit 的元素,这是一个输入字段,.val() 与一个输入字段一起工作。所以,你可以写成$('#localEdit').val(local);,而不是$('#localEdit').parent().val(local);

    所以在这种情况下,您有一个引用 localEdit 的 id,它是一个输入字段,.val() 函数可以使用它,无需调用 .parent()

    【讨论】:

    • 还没有成功。在控制台中调试我可以看到var local = $(this).find('#data-local').text(); 返回空。所以我知道为什么
    • 所以不是 $('#localEdit').val("Some Value");如果可行,则意味着 var local 没有价值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    相关资源
    最近更新 更多