javascript - 如果它是动态创建的,则知道选中的复选框 - Django

标签 javascript jquery html

当我点击一个按钮时,我想知道选择了什么 checkbox。问题是复选框是在我的模板中使用 for 循环 动态创建的。

html

<form action="#" method="post" target="#">
    {% for node in Last_val_nodes %}
        <input type="checkbox" class="nodeRuta" name="{{node.0}}">{{node.0}}<br>
    {% endfor %}
</form>

JS

$('#filtrar_btn_map').click(function(){
    if( $(".nodeRuta").is(':checked') ) {
        var node = $(".nodeRuta").attr("name");
        alert(node);
    }
});

Last_val_nodes 是一个类似于 [['node1',1,2],['node2',4,5],['node3',7,8]] 在我的代码中,alert 始终显示 node1,无论选中哪个复选框。

我尝试使用 var node = $(this).attr("name"); 但它也不起作用。有人可以帮帮我吗?

非常感谢。

最佳答案

您需要使用 :checked 选择器和 length 来查找是否任何复选框已被选中。

也就是说,根据您的需要,直接遍历所有选中的项目会更有意义:

$('#filtrar_btn_map').click(function() {
  $(".nodeRuta:checked").each(function() {
    var node = this.name;
    console.log(node);
  }
});

或者您可以使用 map() 构建所选值的数组:

$('#filtrar_btn_map').click(function() {
  var values = $(".nodeRuta:checked").map(function() {
    return this.name;
  }).get();
  console.log(values);
});

关于javascript - 如果它是动态创建的,则知道选中的复选框 - Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59119551/

相关文章:

javascript - 循环中的变量 - 如何在我的情况下修复它?

javascript - 如果值 = 0,则显示占位符

jquery - TinyMCE 路径,如何指定加载 editor_plugin.js 等内容的位置

html - 如何在 2 个 div 之间定位页脚?

javascript - document.write 在一个新的 open.document 中

JavaScript - window.location - 权限被拒绝 - 跨站点脚本

javascript - 单击按钮时在框架内打开页面

javascript - 通过动态键访问对象未定义错误

javascript - 在鼠标悬停时将 $(this) 传递给 setTimeout 函数

javascript - 为什么无法在 JavaScript 中读取 null 的属性 'style'?