简体   繁体   English

如何从 html 中检索 jQuery 值

[英]How to retrieve jQuery values back from html

When opening a modal, I'm assigning values with jQuery so they could be used inside the model:打开模态时,我使用 jQuery 分配值,以便它们可以在模型中使用:

Modal trigger:模态触发器:

<a data-toggle='modal' data-name='$nameCap' data-id='$id' class='open-DeleteDialog' href='#deleteDialog'><i class='fas fa-trash-alt'></i></a>

main.js:主要.js:

$(document).on("click", ".open-DeleteDialog", function () {
    var categoryId = $(this).data('id');
    var categoryName = $(this).data('name');
    $("#categoryId").val( categoryId );
    $('#deleteConfirmation').text("Are you sure you want to delete this category: " + categoryName + "?");
});

Inside the modal:模态内部:

  <div class="modal-body">
    <div id="deleteConfirmation">
      <!-- Filled with confirmation from jquery -->
    </div>
  </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
    <button id="saveChanges" type="button" class="btn btn-danger">Delete</button>
    <script>

      $(function() {

        $('#saveChanges').on('click', function() {
          var id = $( "#categoryId").val();
          console.log(id)
        });


      });
    </script>

I'm trying to get back #categoryId value but when logging it it returns undefined.我正在尝试取回 #categoryId 值,但是在记录它时它返回未定义。 What am I doing wrong?我究竟做错了什么?

You should add categoryId element with hidden type like this.您应该像这样添加具有hidden类型的categoryId元素。

<input type="hidden" id="categoryId" />

 $(document).on("click", ".open-DeleteDialog", function () { var categoryId = $(this).data('id'); $("#categoryId").val(categoryId); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <a data-toggle='modal' data-name='$nameCap' data-id='123' class='open-DeleteDialog' href='#deleteDialog'><i class='fas fa-trash-alt'></i>123</a> <a data-toggle='modal' data-name='$nameCap' data-id='456' class='open-DeleteDialog' href='#deleteDialog'><i class='fas fa-trash-alt'></i>456</a> <input type="hidden" id="categoryId" /> <hr/> <div class="modal-body"> <div id="deleteConfirmation"> <!-- Filled with confirmation from jquery --> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button> <button id="saveChanges" type="button" class="btn btn-danger">Delete</button> <script> $(function() { $('#saveChanges').on('click', function() { var id = $( "#categoryId").val(); console.log(id) }); }); </script>

 $(function(){ var categoryId; $(document).on('click', '.open-DeleteDialog', function(e){ categoryId = $(this).data('id'); }) $('#saveChanges').on('click', function(e){ alert(categoryId); }) })
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <a data-toggle='modal' data-name='$nameCap' data-id='123' class='open-DeleteDialog' href='#deleteDialog'><i class='fas fa-trash-alt'></i>123</a> <a data-toggle='modal' data-name='$nameCap' data-id='456' class='open-DeleteDialog' href='#deleteDialog'><i class='fas fa-trash-alt'></i>456</a> <button id="saveChanges" type="button" class="btn btn-danger">Delete</button>

Why not make global variable instead of creating hidden element?为什么不创建全局变量而不是创建隐藏元素?

var categoryId;

$(document).on("click", ".open-DeleteDialog", function () {
    // initialize category id
    categoryId = $(this).data('id');
});

Getting category id value获取类别 ID 值

$('#saveChanges').on('click', function() {
      console.log(categoryId )
});

The code will look like this代码看起来像这样

$(function() {
    // global variable
    var categoryId;

    $(document).on("click", ".open-DeleteDialog", function () {
        // initialize category id
        categoryId = $(this).data('id');
    });

    $('#saveChanges').on('click', function() {
        console.log(categoryId )
    });
})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM