多个Bootstrap模态和回发

时间:2016-01-26 18:50:20

标签: asp.net asp.net-mvc twitter-bootstrap

我对ASP.NET的了解非常有限,但是,我正在为将在ASP MVC中构建的应用程序构建UI / UX设计,并且我听说过有关以下问题的传闻:

  

当Boostrap模式触发按钮事件(onClick)时,它会创建一个回发,反过来它会刷新页面,从而使多个引导模式无法工作。除非模态不需要与后端进行交互,这意味着它们只是服务于客户端。

我需要知道这有多少是真的,如果有办法创建搜索或填充引导模式,并在第二个模态中输入信息。

不幸的是,我无法生成一个有效的ASP代码,但我会生成它的HTML部分,所以你有一个想法。

同样,我的问题是,我可以使用模态2中输入的信息填充模态1吗?从模态1调用模态2.有关详细信息,请参阅代码和演示

<div class="container">
<h1>Working with Multiple Modals</h1>
<div class="margin-lg">
  <button type="button" class="btn-first-modal btn btn-primary btn-lg" data-toggle="modal" data-target="#first-modal">
    Launch Modal
  </button>
</div>


<div class="modal" id="first-modal" data-backdrop="static" data-keyboard="false">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">First Modal</h4>
      </div>
      <div class="modal-body">
        <div class="row">
          <div class="col-xs-12 col-sm-4">
            <label class="label-control">My ID</label>
            <input type="text" class="form-control" disabled/>
          </div>
        </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn-second-modal within-first-modal btn btn-primary">
          Add ID
        </button>
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>

<div class="modal" id="second-modal" data-backdrop="static" data-keyboard="false">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="btn-second-modal-close close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title">ID Generator</h4>
      </div>
      <div class="modal-body">
        <div class="row">
          <div class="col-xs-12 col-sm-4">
            <label class="label-control">Choose ID</label>
            <input type="text" class="form-control" />
          </div>
        </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn-second-modal-close btn btn-primary">Add</button>
      </div>
    </div>
  </div>
</div>

JS

   var within_first_modal = false;
    $('.btn-second-modal').on('click', function() {
      if ($(this).hasClass('within-first-modal')) {
        within_first_modal = true;
        $('#first-modal').modal('hide');
      }
      $('#second-modal').modal('show');
    });

    $('.btn-second-modal-close').on('click', function() {
      $('#second-modal').modal('hide');
      if (within_first_modal) {
        $('#first-modal').modal('show');
        within_first_modal = false;
      }
    });

    $('.btn-toggle-fade').on('click', function() {
      if ($('.modal').hasClass('fade')) {
        $('.modal').removeClass('fade');
        $(this).removeClass('btn-success');
      } else {
        $('.modal').addClass('fade');
        $(this).addClass('btn-success');
      }
    });

DEMO

1 个答案:

答案 0 :(得分:0)

这可以让您向服务器发出请求,并对您收到的信息执行某些操作。

$(".btn-second-modal").on("click", function () {
        $.ajax({
            url: "/urltoserver/action/",
            cache: false
        }).done(function (data) {
            // SET YOUR FIRST MODAL PROPERTIES

            // HIDE YOUR SECOND MODAL

            // SHOW YOUR FIRST MODAL
        });
    });