首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$(.).jqBootstrapValidation不是HTMLDocument.<anonymous>的函数

$(.).jqBootstrapValidation不是HTMLDocument.<anonymous>的函数
EN

Stack Overflow用户
提问于 2019-07-16 11:30:22
回答 1查看 2.1K关注 0票数 0

我正在尝试实现一个使用引导模板的联系人页面。我是一个真正的初学者在asp.net,这是我的第一次使用模板。我真的搞不懂造成上述错误的问题在哪里。我想当用户单击“发送消息”按钮将电子邮件发送到当前的业务电子邮件。有谁可以帮我?

代码语言:javascript
复制
contact.cshtml

        <div class="row">
            <div class="col-lg-8 mb-4">
                <h3>Send us a Message</h3>
                <form name="sentMessage" id="contactForm" novalidate>
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Full Name:</label>
                            <input type="text" class="form-control" id="name" required data-validation-required-message="Please enter your name.">
                            <p class="help-block"></p>
                        </div>
                    </div>
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Phone Number:</label>
                            <input type="tel" class="form-control" id="phone" required data-validation-required-message="Please enter your phone number.">
                        </div>
                    </div>
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Email Address:</label>
                            <input type="email" class="form-control" id="email" required data-validation-required-message="Please enter your email address.">
                        </div>
                    </div>
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Message:</label>
                            <textarea rows="10" cols="100" class="form-control" id="message" required data-validation-required-message="Please enter your message" maxlength="999" style="resize:none"></textarea>
                        </div>
                    </div>
                    <div id="success"></div>
                    <!-- For success/fail messages -->
                    <button type="submit" class="btn btn-primary" id="sendMessageButton">Send Message</button>
                </form>
            </div>     
        </div>
    </div>

    <script src="~/Content/vendor/jquery/jquery.min.js"></script>        
    <script src="~/Scripts/contact_me.js"></script>
    <script src="~/Scripts/jqBootstrapValidation.js"></script>
    <script src="~/Content/vendor/bootstrap/js/bootstrap.min.js"></script>



    contact_me.js

    $(function () {

      $('#contactForm input,#contactForm textarea').jqBootstrapValidation({
        preventSubmit: true,
        submitError: function($form, event, errors) {
          // additional error messages or events
        },
        submitSuccess: function($form, event) {
          event.preventDefault(); // prevent default submit behaviour
          // get values from FORM
          var name = $("input#name").val();
          var email = $("input#email").val();
          var phone = $("input#phone").val();
          var message = $("textarea#message").val();
          var firstName = name; // For Success/Failure Message
          // Check for white space in name for Success/Fail message
          if (firstName.indexOf(' ') >= 0) {
            firstName = name.split(' ').slice(0, -1).join(' ');
          }
          $this = $("#sendMessageButton");
          $this.prop("disabled", true); // Disable submit button until AJAX call is complete to prevent duplicate messages
            $.ajax({
                     url: "mail/contact_me.php",
            type: "POST",
            data: {
              name: name,
              phone: phone,
              email: email,
              message: message
            },
            cache: false,
            success: function() {
              // Success message
              $('#success').html("<div class='alert alert-success'>");
              $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                .append("</button>");
              $('#success > .alert-success')
                .append("<strong>Your message has been sent. </strong>");
              $('#success > .alert-success')
                .append('</div>');
              //clear all fields
              $('#contactForm').trigger("reset");
            },
            error: function() {
              // Fail message
              $('#success').html("<div class='alert alert-danger'>");
              $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                .append("</button>");
              $('#success > .alert-danger').append($("<strong>").text("Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!"));
              $('#success > .alert-danger').append('</div>');
              //clear all fields
              $('#contactForm').trigger("reset");
            },
            complete: function() {
              setTimeout(function() {
                $this.prop("disabled", false); // Re-enable submit button when AJAX call is complete
              }, 1000);
            }
          });
        },
        filter: function() {
          return $(this).is(":visible");
        },
      });

      $("a[data-toggle=\"tab\"]").click(function(e) {
        e.preventDefault();
        $(this).tab("show");
      });
    });

    /*When clicking on Full hide fail/success boxes */
    $('#name').focus(function() {
      $('#success').html('');
    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-16 11:35:15

当我的回答在评论中变形时:

答案是OP添加了Jquery两次,在文件jqBootstrapValidation.js中产生了冲突。

此外,根据OP的文章帮助其他人,下面这部分也可能会有所帮助:

Javascript文件需要按照它们的依赖顺序加载。由于您的自定义javascript文件,contact_me.js依赖于javascript文件jqBootstrapValidation.js中包含的函数,您需要在contact_me.js之前加载jqBootstrapValidation.js,以按照加载这些文件的顺序修复这个开关:

代码语言:javascript
复制
<script src="~/Content/vendor/bootstrap/js/bootstrap.min.js"></script>
<script src="~/Scripts/jqBootstrapValidation.js"></script>
<script src="~/Content/vendor/jquery/jquery.min.js"></script>        
<script src="~/Scripts/contact_me.js"></script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57056262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档