javascript - 如何从添加到html页面的动态元素中获取数据?

标签 javascript jquery html asp.net-core-mvc

在下面我写了我的 html 页面的一部分。

<form method="post" enctype="multipart/form-data">
  <div>
    <label>Brand Name:</label>
    <input type="text" asp-for="@Model.Name">
  </div>
  <div id="divCategory">

  </div>
  <button type="button" id="btnAddCategory">Add Category</button>
  <button>Create new Brand</button>
</form>

我有两个 js 和 jquery 函数,它们将选择添加到 divCategory。通过此选择,我可以添加一些类别。

function countMyCategories() {
  if (typeof countMyCategories.counter == 'undefined') {
    countMyCategories.counter = -1;
  }
  return ++countMyCategories.counter;
}  

$(document).ready(function () {
  $('#btnAddCategory').on('click', function () {
    var catId = countMyCategories();
    $('#divCategory').append(
      '<select id="selectCategory' + catId + '" asp 
      for="@@Model.CatBrands[' + catId + '].CatId" class="mt-3 form-control 
      form-control-sm">' +
      '<option>---Select---</option>' +
      '</select>'
     );

     $.ajax('/API/GetCats')
       .done(function (categories) {
         for (var i = 0; i < categories.length; i++) {
           $('#selectCategory' + catId).append(
             '<option value="' + categories[i].id + '">' + 
              categories[i].name + '</option>'
             )
          }
        });
     });
 });

当我单击“添加类别”按钮时,一个选择标签通过 id="divCategory"添加到 div,但问题是当我单击“创建新品牌”按钮时,我没有从这些选择中获取数据服务器,实际上 CatBrands 为空,但我得到了名字。我得到类似的东西:

{name = "LG", catBrands = null}

最佳答案

CatBrands 为空,因为您无法以这种方式从服务器动态添加数据。当页面呈现时,您需要在 html 中由 asp 呈现您想要的所有内容。

<form method="post" enctype="multipart/form-data">
  <div>
    <label>Brand Name:</label>
    <input type="text" asp-for="@Model.Name">
  </div>
  <div id="divCategory">
    <select id="selectCategory asp-code-goes-here>
      <option>---Select---</option>
    </select>
  </div>
  <button type="button" id="btnAddCategory">Add Category</button>
  <button>Create new Brand</button>
</form>

关于javascript - 如何从添加到html页面的动态元素中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54487877/

相关文章:

javascript - 如何创建具有初始 View = Fit 的 PDF 文件

javascript - 用于映射对象数组的数组元素的函数

jquery - 如何放大 Rmarkdown 演示文稿中的绘图

Javascript ajax双重请求

javascript - AngularJS 同一页面上的多个加载器

javascript - 替换 PhotoSwipe 图库中的图像

javascript - 加载tinyMCE时的默认html字符

html - 如何了解 Google Web Fonts 的采用率?

php - 根据 MYSQL 验证用户输入字段

html - Bootstrap 3 重新排序小屏幕导航栏的布局