Bootstrap :: Abrir popup e passar dados para a mesma

Antes de abrir a popup, ler e adicionar elementos à mesma.

by Salustiano Silva

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<table class="table table-bordered">
  <tbody>
    <tr>
      <td>
        Coisas boas na vida
      </td>
      <td>
        <button type="button" class="btn btn-primary btn-sm modal-trigger" data-target="#myModal" data-name="bubu" data-action="Editar">Editar</button>
      </td>
      <td>
        <button type="button" class="btn btn-danger btn-sm modal-trigger" data-target="#myModal" data-name="bubu" data-action="Apagar">Apagar</button>
      </td>
    </tr>
  </tbody>
</table>

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button>
        <button type="button" class="btn btn-primary">Siga...</button>
      </div>
    </div>
  </div>
</div>

JavaScript

$(document).ready(function(){

  $('.modal-trigger').on("click", function(e) {
    e.preventDefault();

    var $this  = $(this),
        $modal = $($this.data("target")),
        name   = $this.data("name"),
        action = $this.data("action"),
        title  = $this.closest("tr").find("td:first-child").html();

    if ($modal.size()==1) {

      $modal.find('#myModalLabel').html("A " + action + " " + title);
      $modal.find('.modal-body').html("Hei " + name + ", é para " + action + "?");

      $modal.modal('show');
    }
  });
 });