javascript - 用于 div 的多个子级别输入元素的 JQuery 选择器

标签 javascript jquery jquery-selectors

我正在尝试选择特定 div 中的所有输入。 div 的子深度为 1 和 2。我能够获取第一级的输入,但不能获取第二级的输入。这是我的代码:-

HTML

<div class="col-xs-11 ajax-form">
  <input type="hidden" name="user_id" value="4">
  <label class="checkbox-inline"><input name="2" type="checkbox" value="Sudo"> Sudo</label>
  <label class="checkbox-inline"><input name="1" type="checkbox" value="Admin"> Admin</label>
  <label class="checkbox-inline"><input name="3" type="checkbox" value="Client"> Client</label>
</div>

JS:

$(document).ready(function() {
  var data = $('.ajax-form :input').serialize();
  console.log(data);
});

我的输出:

user_id=4

这是我的 jsfiddle

感谢您提供的所有帮助。

最佳答案

代码不起作用的原因:-

1.在您的代码中,当文档准备好时,不会选中任何复选框,这就是为什么值不会出现在序列化数据中。

解决方案:- 将 checked 属性添加到复选框,如下所示:-

示例:-

$(document).ready(function() {
  var data = $('.ajax-form :input').serialize();
  console.log(data);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-xs-11 ajax-form">
  <input type="hidden" name="user_id" value="4">
  <label class="checkbox-inline"><input name="2" type="checkbox" value="Sudo" checked> Sudo</label>
  <label class="checkbox-inline"><input name="1" type="checkbox" value="Admin" checked> Admin</label>
  <label class="checkbox-inline"><input name="3" type="checkbox" value="Client" checked> Client</label>
</div>

执行相同操作的另一个选项:-

2.创建一个按钮,然后单击按钮尝试序列化 div 元素数据。然后不需要添加 checked 属性。它将动态地工作。

示例:-

$(document).ready(function() {
  $('#serialize_div_data').click(function(){
      var data = $('.ajax-form :input').serialize();
      console.log(data);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="col-xs-11 ajax-form">
      <input type="hidden" name="user_id" value="4">
      <label class="checkbox-inline"><input name="2" type="checkbox" value="Sudo"> Sudo</label>
      <label class="checkbox-inline"><input name="1" type="checkbox" value="Admin"> Admin</label>
      <label class="checkbox-inline"><input name="3" type="checkbox" value="Client"> Client</label>
</div>
<input type="button" id = "serialize_div_data" value="Click Me to serailized the div data">

关于javascript - 用于 div 的多个子级别输入元素的 JQuery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43037908/

相关文章:

javascript - 获取隐藏视频的高度和宽度

javascript - 修复了谷歌地图混搭中的图例

javascript - JS : Keyboard input: Disable "8" from inputting when entering "* " (multiply sign)

javascript - JQuery 可编辑选择数据库中的数据

jquery - knockout 中的复选框绑定(bind)不适用于触发事件

javascript - 为什么 NodeJS 在计算素数和方面比 Rust 快?

javascript - 为什么这个javascript在IE中不起作用,但在其他浏览器中却起作用?

javascript - 使用 jQuery 获取表中的列 id

javascript - 导航链接上的 jQuery 事件类没有改变

javascript - 为什么 jquery 选择器从旧值而不是新值中选择元素