Bootstrap模态:未定义

时间:2015-04-03 23:07:55

标签: javascript jquery twitter-bootstrap

我尝试在表单的“名称”字段为空时显示的网站上添加模式,以通知用户。

到目前为止我所拥有的是:

<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>

2 个答案:

答案 0 :(得分:1)

这是一个jQuery问题。我在“MyModal-winner”中遇到了拼写错误:

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

另外,在jQuery之前加载Bootstrap导致2之间发生冲突,所以现在我在Bootstrap之前加载了jQuery。

答案 1 :(得分: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>