0

当我尝试使用两个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=

idokse1没有包含在 jquery 序列化中。我期望的是如下:

1=&okse=2010&4=&6=&7=&8=&okse1=matt

或者我得到了一个空的结果,但是 idokse1被序列化了

1=&okse=2010&4=&6=&7=&8=&okse1=

正如您在上面的代码片段中看到的那样,当我单击时,selectpicker带有 id的okse1没有序列化button#test。如果选择器在不同的选项卡中,它没有序列化。我该如何解决 ?

4

1 回答 1

2

按照建议修复您的 HTML 标记。表单在第二个选项卡的 div 之前关闭。在第一个打开。这是固定的小提琴: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>

于 2017-11-25T00:26:02.840 回答