在模态中选择表格中的值并填充模态之外的表格?

时间:2018-04-22 15:53:44

标签: jquery html datatables bootstrap-modal jscript

此第一张图像显示空表格并有3个样本输入并有自己的名称。

Img1

在第二张图片上,你会看到里面有表格的模态,每个图像都有不同的名称/数据。

Img1

我想要的是,如果我在该表中选择1行,无论是过滤还是单击第二页,外部表单必须由我在表<td>上选择的数据填充。

以下是我的示例代码: JSFIDDLE

   <!DOCTYPE html>
    <html lang="en">
    <head>
      <title>Bootstrap Example</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
      <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/dt-1.10.16/datatables.min.css"/>

    <script type="text/javascript" src="https://cdn.datatables.net/v/dt/dt-1.10.16/datatables.min.js"></script>
    </head>
    <body>

    <div class="container-fluid">
      <!-- Trigger the modal with a button -->
      <br>  <br>
    <button type="button" class="btn btn-info btn-sm pull-right" data-toggle="modal" data-target="#myModal">Show Record</button>  <br>  <br>
    <div class="panel panel-default">
      <div class="panel-heading"></div>
      <div class="panel-body">
        <form>
      <div class="form-group">
      <input type="Hidden" name="ID" class="form-control">
      </div>
      <div class="form-group">
        <label>Name</label>
      <input type="text" name="Name"  class="form-control">
       </div>
      <div class="form-group">
        <label>Bday</label>
      <input type="date" name="Bday"  class="form-control">
       </div>
      <div class="form-group">
        <label>Age</label>
      <input type="number" name="Age"  class="form-control">
       </div>
       <div class="form-group">
      <input type="submit" name="Submit"  class="btn btn-success">
       </div>
    </form>

      </div>
    </div>

    <!-- Modal -->
    <div id="myModal" class="modal fade" role="dialog">
      <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Modal Header</h4>
          </div>
          <div class="modal-body">
           <div class="table-responsive">
              <table class="table" id="example">
                <thead>
                  <tr>
                    <th>Name</th>
                    <th>Bday</th>
                    <th>Age</th>
                  </tr>
                </thead>
                <tbody>
                  <tr>
                    <td>Name1</td>
                    <td>10-1-1997</td>
                    <td>20</td>
                  </tr>
                  <tr>
                    <td>Name2</td>
                    <td>9-1-1997</td>
                    <td>20</td>
                  </tr>
                  <tr>
                    <td>Name3</td>
                    <td>8-1-1997</td>
                    <td>20</td>
                  </tr>
                  <tr>
                    <td>Name4</td>
                    <td>7-1-1997</td>
                    <td>20</td>
                  </tr>
                  <tr>
                    <td>Name5</td>
                    <td>6-1-1997</td>
                    <td>20</td>
                  </tr>
                  <tr>
                    <td>Name6</td>
                    <td>10-1-1997</td>
                    <td>20</td>
                  </tr>
                  <tr>
                    <td>Name7</td>
                    <td>9-1-1997</td>
                    <td>20</td>
                  </tr>
                  <tr>
                    <td>Name8</td>
                    <td>8-1-1997</td>
                    <td>20</td>
                  </tr>
                  <tr>
                    <td>Name9</td>
                    <td>7-1-1997</td>
                    <td>20</td>
                  </tr>
                  <tr>
                    <td>Name10</td>
                    <td>6-1-1997</td>
                    <td>20</td>
                  </tr>
                  <tr>
                    <td>Name11</td>
                    <td>6-1-1997</td>
                    <td>20</td>
                  </tr>
                </tbody>
              </table>
            </div>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
          </div>
        </div>

      </div>
    </div>
     </div>

    </body>
    <script type="text/javascript">
      $(document).ready(function() {
        $('#example').DataTable();
    } );
    </script>
    </html>

我不知道如何将模态上的点击值传递给表单。 在此先感谢我希望有人帮助我。

1 个答案:

答案 0 :(得分:3)

使用以下步骤填充表单中的值:

1)捕获由datatable

创建的表对象
var table= $('#example').DataTable();

2)现在捕获表格的表格主体

var tableBody = '#example tbody';

3)在tbody上添加click事件处理程序

$(tableBody).on('click', 'tr', function () {
var cursor = table.row($(this).parents('tr'));//get the clicked row
var data=cursor.data();// this will give you the data in the current row.
});

4)现在根据您捕获的数据设置表单中的数据值。对于前。

$('form').find("input[name='name'][type='text']").val(data.name);

在找到密钥以获取值之前,请先控制数据。 或检查一下 工作结果Fiddle