Как мне правильно отобразить модальное поле Bootstrap?

#html #twitter-bootstrap #twitter-bootstrap-3 #modal-dialog #bootstrap-modal

#HTML #twitter-bootstrap #twitter-bootstrap-3 #modal-dialog #bootstrap-модальный

Вопрос:

Я использую Bootstrap v3.1.1 и скопировал точную документацию для теста модального блока. Я пытаюсь правильно отобразить модальное поле Bootstrap, но по какой-то причине оно будет работать некоторое время, когда я его тестирую. Я нажал на кнопку, которая, как предполагалось, запускала модальное окно, показывая серое затухание / тень (фон, когда модальное окно открыто) и быстро исчезает. Я отладил и увидел много ошибок, говорящих о том, что объявление сброшено.

Еще одна вещь, которую я заметил, URL C://.../test.html -адрес не позволял корректно отображать модальное поле, однако добавление C://.../test.html# заставляло поле работать правильно. Теперь это заставляет меня задуматься, поскольку у меня есть пара хэштегов в моем общем html-документе, имеет ли это какое-либо отношение к этим хэштегам? Может быть, именно эта строка кода?

 <button class="btn btn-primary" data-toggle="modal" data-target="#myModal">
 

Если нет, то какова основная причина проблемы относительно того, почему хэштег в конце строки url заставил ее работать, и как я могу это исправить?

HTML:

 <!DOCTYPE HTML>
<html lang="en">

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Login Test</title>

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="css/bootstrap-theme.min.css">

<!-- Latest compiled and minified JavaScript -->
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>

<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="js/html5shiv.js"></script>
<script src="js/respond.min.js"></script>
<![endif]-->

<style>
 /*{border:1px dotted blue;}*/
 footer{margin-top:20px;}
</style>
</head>
<body>

<!-- Skip Navigation -->
<a href="#PrintReady" class="offscreen" style="display:none;">Skip to Main Content Area</a>  
<div id="container">
<div class="container">

    <div class="bannerLogoArea" style="padding:20px 0;">
    <span class="bannerSiteAreaText">Login Test</span>
    </div> 

    <!-- PlaceBar -->
    <div class="nav-cntr">
        <!-- Static navbar -->
        <div class="navbar navbar-default" role="navigation">
            <div class="container-fluid">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    </button>
                </div>

                <div class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <li><a class="wpsUnSelectedPlaceLink" href='#'>amp;nbsp;Homeamp;nbsp;</a></li>
                        <li><a class="wpsUnSelectedPlaceLink" href='#'>amp;nbsp;Accountamp;nbsp;</a></li> 
                        <li><a class="wpsUnSelectedPlaceLink" href='#'>amp;nbsp;Contact Usamp;nbsp;</a></li>      
                        <li class="active"><a class="wpsSelectedPlaceLink" href='#'>amp;nbsp;Login Testamp;nbsp;</a></li> 
                    </ul>
                    <ul class="nav navbar-nav navbar-right">
                        <li><a href="#"><strong>Login or Register</strong></a></li>
                    </ul>
                </div><!--/.nav-collapse -->
            </div><!--/.container-fluid -->
        </div> 
    </div><!--/.nav-cntr -->       

    <div id="PrintReady"> 

        <table border="0" width="100%" cellpadding="0" cellspacing="0" align="center">
            <tr height="100%"> 
                <td valign="top" > 
                    <table border="0" width="100%" cellpadding="0" cellspacing="0" align="center"> 
                        <tr>
                            <td width="100%" valign="top">

                                <div class="default-skin">
                                    <div class="row">
                                        <div class="col-sm-12">
                                            <h1>Member Registration</h1>
                                            <p>Please complete the following fields and click 'Continue.'</p>
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-sm-10">
                                            <form class="form-horizontal" role="form">

                                                <!--Button trigger modal-->
                                                <button class="btn btn-primary" data-toggle="modal" data-target="#myModal">
                                                    Read amp; Accept Lorem Ipsum
                                                </button>

                                            </form>
                                            <!--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" aria-hidden="true">amp;times;</button>
                                                                <h4 class="modal-title" id="myModalLabel">Modal title</h4>
                                                            </div>
                                                            <div class="modal-body">
                                                            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. 
                                                            </div>
                                                            <div class="modal-footer">
                                                                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                                                            </div>
                                                        </div>
                                                    </div>
                                                </div>
                                        </div>
                                    </div>
                                </div>  

                            </td>
                        </tr> 
                    </table>
                </td>
            </tr> 
        </table>         

    </div><!-- /PrintReady -->

</div> <!-- /container -->  
</div>
</body>
</html>
 

Ответ №1:

Удалите элемент формы, который окружает кнопку, которая запускает модальное поле. Ваша кнопка запускает действие формы, поэтому оно внезапно меняется. Рабочий пример здесь: http://www.bootply.com/zYGnsEkuF2

 <!-- <form class="form-horizontal" role="form"> REMOVE THIS LINE -->
  <!--Button trigger modal-->
  <button class="btn btn-primary" data-toggle="modal" data-target="#myModal">
    Read amp; Accept Lorem Ipsum
  </button>
<!-- </form> REMOVE THIS LINE -->
 

Комментарии:

1. Большое спасибо за решение этой проблемы! От этого у меня разболелась голова. Теперь я знаю, что если и происходят какие-то внезапные изменения, то <form> в данном случае их вызывает тег.

Ответ №2:

О, я понял это. Переместите модальное за пределы вашей формы!

переместите это <div class="modal fade" id="myModal" ....> за пределы <form class="form-horizontal" role="form">

под ним. Это правда, хотя внутренняя форма div каким-то образом вполне приемлема bootstrap.js ему нелегко с этим смириться. это известная ошибка!

Комментарии:

1. Хм, об этом не подумал! Я попробовал, все равно дает мне те же результаты.

2. Я протестировал его. Я увидел проблему, и после того, как я переместился ниже </form>, он начал работать в Chrome. убедитесь, что ваша структура html верна. нет незакрытых разделов и т. Д. Если он все еще не работает, опубликуйте свой обновленный html в вопросе

3. Я снова проверил и протестировал с помощью средства проверки html, чтобы убедиться, что я ничего не пропустил, он все еще не работает, обновленный код выше.

4. это отлично работает для меня — вот bootply bootply.com/y3OW7nY3TE

5. Это так странно! почему это работает в Bootply, но не работает локально в браузере? Я все еще пытаюсь выяснить, должно быть, это ошибка или что-то в этом роде, не уверен. Я тестировал в IE и работает, когда я дважды нажимаю на кнопку, один щелчок ничего не даст. В Firefox и Chrome результаты практически те же, серый цвет быстро исчезает и быстро появляется в браузере локально.