Bootstrap Alert再次显示出来

时间:2017-09-28 06:02:14

标签: javascript jquery html twitter-bootstrap twitter-bootstrap-3

在表单提交时,我在第一次迭代中收到警报,但在提交表单时(之前关闭之后)警报不会再出现。 什么可能出错? 我曾尝试过以下方法:

<div id="messages" class="hide" role="alert">
      <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
      <div id="messages_content"></div>
</div>

脚本

$('#myform').submit(function(e) {
    $('#messages').removeClass('hide').addClass('alert alert-success alert-dismissible').slideDown().show();
    $('#messages_content').html('<h4 class="usefont" style="text-align: center">Thank you message!</h4>');
    $('#modal').modal('show');
    e.preventDefault();
});

1 个答案:

答案 0 :(得分:1)

这是我的解决方案,您需要删除data-dismiss属性,并在关闭按钮内实现隐藏功能。

问题是data-dismiss正在完全从DOM中删除元素!

$('#myform').on('submit', function(e) {
  $('#messages').removeClass('hide').addClass('alert alert-success alert-dismissible').slideDown();
  $('#messages_content').html('<h4 class="usefont" style="text-align: center">Thank you message!</h4>');
  $('#modal').modal('show');
  e.preventDefault();
});

$('#close').on('click', function(e) {
  $('#messages').removeClass('alert alert-success alert-dismissible').addClass('hide').slideUp().hide();
  $('#messages_content').html('');
  $('#modal').modal('show');
  e.preventDefault();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<div id="messages" class="hide" role="alert">
  <button type="button" id="hide" class="close" aria-label="Close"><span id="close">&times;</span></button>
  <div id="messages_content"></div>
</div>
<form action="" id="myform">
  <button type="submit">submit</button>
</form>