javascript - 如何将使用ajax创建的元素的值分配给隐藏的表单字段?

标签 javascript jquery ajax

有一个带有按钮的 div。当您单击该按钮时,会出现一个表单。然后 div 的 id 被分配给表单的隐藏字段。这适用于页面加载时页面上的 div。它不适用于页面加载后通过 ajax 创建的 div。

<div class=\"maincircle\">
    <div class=\"textcircle\" data-id=\"$name\" onclick=\"displayLevel3('$name');\">". $row['name'] ."</div>
    <button class=\"add1\" id=\"$name\" onclick=\"toggle_visibility('addleaf');\"></button>
    <button class=\"add2\" data-id=\"$name\" onclick=\"toggle_visibility('addsibling');\"></button>
    <button class = \"delete\" data-id= \"$name\"></button>
</div>

点击“textcircle”后,ajax 显示更多具有相同布局的 div:

    $.ajax( { type : 'POST',
      data : {"node" : val},
      url  : 'displaylevel3.php',
      success: function ( data ) {
        $('#level3').html(data);
      },
      error: function ( xhr ) {
        alert( "error" );
      }
    });

}

以下 JavaScript 不适用于由 ajax 创建的这些 div 按钮:

var buttons = document.querySelectorAll('button');

for (var i=0; i<buttons.length; ++i) {
  buttons[i].addEventListener('click', clickFunc);
}

function clickFunc() {
  var id = this.id; 
  document.getElementById('parent').value = id;
  document.getElementById('sibling').value = id;
}

如何将使用ajax创建的按钮的值分配给隐藏的表单字段?

最佳答案

你必须使用 jQuery event-delegation :-

$(document).on('click','button',function(){
  var id = $(this).attr('id');
  $(this).closest('#parent').val(id);
  $(this).closest('#sibling').val(id);
});

关于javascript - 如何将使用ajax创建的元素的值分配给隐藏的表单字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46167712/

相关文章:

javascript - 使用 javascript 中的 laravel 选项

java - 处理我的应用程序中的网站页面

jQuery - 如何选择父元素的子元素?

jquery - 如何使用jquery监听返回的json对象

ajax - Uncaught SyntaxError : Unexpected token < in jsf.js.faces?ln=javax.faces

php - 如何使用mysql和php制作级联下拉列表

javascript - fork-ts-checker-webpack-plugin-v5 无法从 @vue/cli-plugin-typescript 访问

javascript - localStorage 不适用于用户帐户

php - 使用分页器 (backbone.js) 时无法检测用户是否已登录

javascript - 不断刷新/接收输出 <div>