【问题标题】:can't hide dialog model无法隐藏对话模型
【发布时间】:2017-06-20 11:47:21
【问题描述】:

单击确定时我多次尝试隐藏对话框,但对话框无法隐藏

不使用 data-dismiss="modal",因为当点击 OK 按钮然后关闭模型

我想当文本框为空时对话框不关闭,否则点击确定按钮关闭。

function btnModelOKClick() {
        if(validation())
        {
          // what write here code for hide dialog
        }
    }
    
function validation(){
  var name = $('#name').val();
  
  if(name == null || name == "")
  {
    return false;
  }
  return true;
}
<!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.2.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Example</h2>
  <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open</button>

  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          
          <h4 class="modal-title">Header</h4>
        </div>
        <div class="modal-body">
        Name : <input type="text" id="name" required/>
        </div>
        <div class="modal-footer">
        
        <button type="button" class="btn btn-default" onclick="btnModelOKClick()">OK</button>
        
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div>
  
</div>

</body>
</html>

请帮帮我

【问题讨论】:

  • 不是模型是 $('#myModel')。 模态 ('隐藏');
  • .modal('hide')的错字
  • 而且模态ID是错误的。 id="myModal" $('#myModel').model('hide');
  • 您找到想要的东西了吗?

标签: javascript jquery html


【解决方案1】:

你的问题在$('#myModel').model('hide');这一行。

它应该是.modal() 而不是.model()。 并确保在$('#myModal') 中也使用正确的id="myModal"

这是一个有效的演示:

function btnModelOKClick() {
        if(validation())
        {
          $('#myModal').modal('hide');
        }
    }
    
function validation(){
  var name = $('#name').val();
  
  if(name == null || name == "")
  {
    return false;
  }
  return true;
}
<!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.2.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Example</h2>
  <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open</button>

  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          
          <h4 class="modal-title">Header</h4>
        </div>
        <div class="modal-body">
        Name : <input type="text" id="name" required/>
        </div>
        <div class="modal-footer">
        
        <button type="button" class="btn btn-default" onclick="btnModelOKClick()">OK</button>
        
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div>
  
</div>

</body>
</html>

【讨论】:

    【解决方案2】:

    试试

    function hideModal(){
        $("#myModal").removeClass("in");
        $(".modal-backdrop").remove();
        $("#myModal").hide();
    }
    

    查看此 StackOverflow 讨论 Bootstrap modal hide is not working

    【讨论】:

      【解决方案3】:

      这只是一个拼写错误

      更改$('#myModel').model('hide');

      $('#myModal').modal('hide');

      function btnModelOKClick() {
              if(validation())
              {
                $('#myModal').modal('hide');
              }
          }
          
      function validation(){
        var name = $('#name').val();
        
        if(name == null || name == "")
        {
          return false;
        }
        return true;
      }
      <!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.2.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
      </head>
      <body>
      
      <div class="container">
        <h2>Example</h2>
        <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open</button>
      
        <!-- Modal -->
        <div class="modal fade" id="myModal" role="dialog" aria-hidden="true">
          <div class="modal-dialog">
          
            <!-- Modal content-->
            <div class="modal-content">
              <div class="modal-header">
                
                <h4 class="modal-title">Header</h4>
              </div>
              <div class="modal-body">
              Name : <input type="text" id="name" required/>
              </div>
              <div class="modal-footer">
              
              <button type="button" class="btn btn-default" onclick="btnModelOKClick()">OK</button>
              
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
              </div>
            </div>
            
          </div>
        </div>
        
      </div>
      
      </body>
      </html>

      【讨论】:

        【解决方案4】:

        以下代码应该可以工作:

        <!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.2.1/jquery.min.js"></script>
          <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
        </head>
        <body>
        
        <div class="container">
          <h2>Example</h2>
          <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open</button>
        
          <!-- Modal -->
          <div class="modal fade" id="myModal" role="dialog">
            <div class="modal-dialog">
        
              <!-- Modal content-->
              <div class="modal-content">
                <div class="modal-header">
        
                  <h4 class="modal-title">Header</h4>
                </div>
                <div class="modal-body">
                Name : <input type="text" id="name" required/>
                </div>
                <div class="modal-footer">
        
                <button type="button" class="btn btn-default" id="modal-ok-button">OK</button>
        
                  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
              </div>
        
            </div>
          </div>
        
        </div>
        
        
        <script type="text/javascript">
        
        $("#modal-ok-button").click(function(){
        
        var name_text = $("#name").val();
        
        if(name_text != null || name_text != ""){
            $('#myModal').modal('hide')
        }
        });
        
        </script>
        
        
        </body>
        </html>
        

        【讨论】:

          【解决方案5】:

          你的模态ID是错误的,试试下面更正的一个(模型应该是模态的)

           $('#myModal').modal('hide');
          

          【讨论】:

          • 啊,我快疯了,现在有两个反对意见完美的答案......
          • 人们看起来有偏见 :) 这很有趣。只是为了提醒他们,因为这个网站是为了建立好的答案和意见,而不是为了麻烦或报复
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-05
          • 1970-01-01
          • 1970-01-01
          • 2014-07-31
          • 1970-01-01
          相关资源
          最近更新 更多