JQuery div 的多个子级别输入元素的选择器
JQuery selector for multiple sub level inputs elements of a div
我正在尝试 select 特定 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
感谢您的所有帮助。
您正在使用:
$('.ajax-form :input')
这将获取选中的复选框的值。
检查更新JSFiddle Link
在此我将 checked
属性放在一个复选框中,您将在 jquery
代码中获得它的值。因此,要获得复选框值,您还必须处理选中/未选中事件。
您的代码不起作用,因为当您加载表单时,您的复选框未选中,因此不考虑表单值
当你在加载页面时获取数据时尝试下面的代码
<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>
您的代码无法运行的原因:-
1.In 您的代码在文档准备就绪时没有选中复选框,这就是序列化数据中没有值的原因。
解决方案:- 将 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.Create 一个按钮并在按钮上单击尝试序列化 div 元素 data.Then 无需添加 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">
我正在尝试 select 特定 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
感谢您的所有帮助。
您正在使用:
$('.ajax-form :input')
这将获取选中的复选框的值。
检查更新JSFiddle Link
在此我将 checked
属性放在一个复选框中,您将在 jquery
代码中获得它的值。因此,要获得复选框值,您还必须处理选中/未选中事件。
您的代码不起作用,因为当您加载表单时,您的复选框未选中,因此不考虑表单值
当你在加载页面时获取数据时尝试下面的代码
<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>
您的代码无法运行的原因:-
1.In 您的代码在文档准备就绪时没有选中复选框,这就是序列化数据中没有值的原因。
解决方案:- 将 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.Create 一个按钮并在按钮上单击尝试序列化 div 元素 data.Then 无需添加 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">