2015-04-03 5 views
0

Im пытается добавить модальный на мой сайт, который появляется, когда поле Name формы остается пустым, чтобы уведомить пользователя.Bootstrap Modal: Undefined

То, что я до сих пор:

<div id="myModal-winner" class="modal fade"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
       <h4 class="modal-title">There is a Problem!</h4> 
      </div> 
      <div class="modal-body"> 
       <p>Please Enter Name of Winner.</p> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-info" data-dismiss="modal">Ok</button> 
      </div> 
     </div> 
    </div> 
</div> 

JS, который должен сделать модальный появляться, если имя остается пустым:

//when user clicks on the "submit" button 
    form.submit({point: point}, function (event) { 
     //prevent the default form behavior (which would refresh the page) 
     event.preventDefault(); 

     //form validation 
     if(!$("input[name=name]", this).val()) { 
      $("#myModal-winner").modal('show'); 
     } 

     //put all form elements in a "data" object 
     var data = { 
      name: $("input[name=name]", this).val(), 
      address: $("textarea[name=address]", this).val(), 
      about: $("textarea[name=about]", this).val(), 
      month: $("select[name=month]",this).val(), 
      year: $("select[name=year]",this).val(), 
      lat: event.data.point.overlay.getPosition().lat(), 
      lon: event.data.point.overlay.getPosition().lng() 
     }; 
     trace(data) 

     //send the results to the PHP script that adds the point to the database 
     $.post("addwinner.php", data, tidy_maps.saveStopResponse, "json"); 

Но консоль возвращается: Uncaught TypeError: undefined is not a function, на линии:

$("#myModal-winner").modal('show'); 

Это форма, с кнопки отправки:

<div class="winner-add"> 
<form class="form-horizontal winner-form" method="post" style="display: none" action="addwinner.php"> 
    <h4>Add Winner</h4> 
    <img src="" > 
    <fieldset> 
     <label for="name"> 
      <span>Event Name :</span> 
      <input id="name" type="text" name="name" placeholder="Enter Name of Winner" /> 
     </label> 
     <label for="address"> 
      <span>Description :</span> 
      <textarea id="address" name="address" placeholder="Address of Winner"></textarea> 
     </label> 
     <label for="about"> 
      <span>Description :</span> 
      <textarea id="about" name="about" placeholder="Details of Award"></textarea> 
     </label> 
     <label for="image"> 
      <span>Upload a Photo:</span> 
      <input type="file" id="image" name="image" /> 
     </label> 
     <hr> 

     <div class="form-actions"> 
      <input name="Save" type="submit" class="btn btn-success btn-sm" value="Save"> 
     </div> 
    </fieldset> 
</form> 
+0

Вы можете показать больше JS и HTML? Чем больше, тем лучше. В частности, мы не можем видеть форму, кнопку, которая представляет форму, привязку JS к кнопке или отправке формы и т. Д. Все это поможет нам устранить неполадки, не догадываясь. –

+0

Похоже, что jquery не загружен. – Jarod

+0

Откуда появляется «форма» в JS, вы устанавливаете что-то перед тем, как оно появится в коде, который вы вставили здесь? –

ответ

1

Я согласен с Jarod, похоже, что jQuery не загружается. Удостоверьтесь, что у вас есть <script src="path_to_jquery"></script> прямо над тегом скрипта для бутстрапа.

Или, если у вас нет JQuery в папке вашего проекта вы можете захватить его в Интернете: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

1

Это была проблема jQuery. Я имел орфографическую ошибку в «MyModal-победитель» здесь:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#myModal-winner").modal('hide'); 
    }); 
</script> 

Кроме того, загрузка Bootstrap перед тем JQuery вызвал конфликт между 2, так что теперь я JQuery загружен до Bootstrap.

+0

Да, jQuery всегда должен быть загружен перед Bootstrap. Рад, что ты разобрался. –