我们如何序列化不同选项卡上的 selectpicker 插件文本?
How could we serialize selectpicker plugin text on different tab?
当我尝试使用两个 selectpicker
但在不同的选项卡中时遇到了问题,如下面的代码
$(document).ready(function(){
$('.selectpicker').selectpicker({
style: 'btn-default'
});
})
$('#test').click(function(){
var test = $('#okay').serialize();
alert(test);
console.log(test);
})
<link rel="stylesheet "type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/css/bootstrap-select.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/js/bootstrap-select.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#home">Home</a></li>
<li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
<li><a data-toggle="tab" href="#menu2">Menu 2</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<form id="okay">
<input class="form-control" type="text" name="1">
<select class="selectpicker form-control" name="okse" id="okse">
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
</select>
<input class="form-control" type="text" name="4">
</div>
<div id="menu1" class="tab-pane fade">
<input class="form-control" type="text" name="6">
<input class="form-control" type="text" name="7">
<input class="form-control" type="text" name="8">
<select class="selectpicker form-control" name="okse1" id="okse1">
<option value="Matt">matt</option>
<option value="Dessy">Dess</option>
</select>
</form>
</div>
<div id="menu2" class="tab-pane fade">
<h3>Menu 2</h3>
<p>Some content in menu 2.</p>
</div>
</div>
<hr>
<br>
<button id="test">Click me</button>
</body>
</html>
我得到的结果是
1=&okse=2010&4=&6=&7=&8=
ID okse1
未包含在 jquery 序列化中。我期望的是如下所示:
1=&okse=2010&4=&6=&7=&8=&okse1=matt
或者我得到一个空结果但是 id okse1
被序列化了
1=&okse=2010&4=&6=&7=&8=&okse1=
正如您在上面的代码片段中看到的,当我单击 button#test
时,id 为 okse1
的 selectpicker
没有序列化。如果选择器在不同的选项卡中,则它没有序列化。我该如何解决这个问题?
按照建议修正您的 HTML 标记。表单在第二个选项卡 div 之前关闭。在第一个打开。这是固定的 fiddle:https://jsfiddle.net/hkxewpbn/
<form id="okay">
<div id="home" class="tab-pane fade in active">
<input class="form-control" type="text" name="1">
<select class="selectpicker form-control" name="okse" id="okse">
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
</select>
<input class="form-control" type="text" name="4">
</div>
<div id="menu1" class="tab-pane fade">
<input class="form-control" type="text" name="6">
<input class="form-control" type="text" name="7">
<input class="form-control" type="text" name="8">
<select class="selectpicker form-control" name="okse1" id="okse1">
<option value="Matt">matt</option>
<option value="Dessy">Dess</option>
</select>
当我尝试使用两个 selectpicker
但在不同的选项卡中时遇到了问题,如下面的代码
$(document).ready(function(){
$('.selectpicker').selectpicker({
style: 'btn-default'
});
})
$('#test').click(function(){
var test = $('#okay').serialize();
alert(test);
console.log(test);
})
<link rel="stylesheet "type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/css/bootstrap-select.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/js/bootstrap-select.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#home">Home</a></li>
<li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
<li><a data-toggle="tab" href="#menu2">Menu 2</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<form id="okay">
<input class="form-control" type="text" name="1">
<select class="selectpicker form-control" name="okse" id="okse">
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
</select>
<input class="form-control" type="text" name="4">
</div>
<div id="menu1" class="tab-pane fade">
<input class="form-control" type="text" name="6">
<input class="form-control" type="text" name="7">
<input class="form-control" type="text" name="8">
<select class="selectpicker form-control" name="okse1" id="okse1">
<option value="Matt">matt</option>
<option value="Dessy">Dess</option>
</select>
</form>
</div>
<div id="menu2" class="tab-pane fade">
<h3>Menu 2</h3>
<p>Some content in menu 2.</p>
</div>
</div>
<hr>
<br>
<button id="test">Click me</button>
</body>
</html>
我得到的结果是
1=&okse=2010&4=&6=&7=&8=
ID okse1
未包含在 jquery 序列化中。我期望的是如下所示:
1=&okse=2010&4=&6=&7=&8=&okse1=matt
或者我得到一个空结果但是 id okse1
被序列化了
1=&okse=2010&4=&6=&7=&8=&okse1=
正如您在上面的代码片段中看到的,当我单击 button#test
时,id 为 okse1
的 selectpicker
没有序列化。如果选择器在不同的选项卡中,则它没有序列化。我该如何解决这个问题?
按照建议修正您的 HTML 标记。表单在第二个选项卡 div 之前关闭。在第一个打开。这是固定的 fiddle:https://jsfiddle.net/hkxewpbn/
<form id="okay">
<div id="home" class="tab-pane fade in active">
<input class="form-control" type="text" name="1">
<select class="selectpicker form-control" name="okse" id="okse">
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
</select>
<input class="form-control" type="text" name="4">
</div>
<div id="menu1" class="tab-pane fade">
<input class="form-control" type="text" name="6">
<input class="form-control" type="text" name="7">
<input class="form-control" type="text" name="8">
<select class="selectpicker form-control" name="okse1" id="okse1">
<option value="Matt">matt</option>
<option value="Dessy">Dess</option>
</select>