【问题标题】:AJAX form submit doesn't work in IE11 and EdgeAJAX 表单提交在 IE11 和 Edge 中不起作用
【发布时间】:2024-01-22 15:39:01
【问题描述】:

无法解决表单提交问题。我将此代码用于我的表单:

        <div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
      <div class="modal-dialog" role="document">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <h4 class="modal-title" id="myModalLabel">Callback request</h4>
          </div>
          <div class="modal-body">
            <p>Please send us your contact information and we will call you back soon</p>
            <form class="callback" method="post" id="form1">
              <div class="input-group">
                <span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
                <input type="text" required class="form-control" id="firstName" name="fio" placeholder="Your name">
              </div>
              <br>
              <div class="input-group">
                <span class="input-group-addon"><span class="glyphicon glyphicon-earphone"></span></span>
                <input type="tel" required class="form-control" id="phoneNumber" name="phone" placeholder="Phone number">
              </div>
              <br>
              <div class="input-group">
                <span class="input-group-addon"><span class="glyphicon glyphicon-envelope"></span></span>
                <input type="email" class="form-control" id="inputEmail" name="email" placeholder="Email">
              </div>
              <br>
              <textarea class="form-control hidden-sm hidden-xs" rows="3" id="textField" name="comment" placeholder="Additional information" style="width:100%"></textarea>
              <input type="hidden" class="form-control" name="subject" value="Callback request">
            </form>
            <p class="text-center">We don't share any of your personal data with anyone</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            <button type="submit" class="btn btn-primary submit" form="form1" onclick="yaCounter12657748.reachGoal('order'); return true;">Submit</button>
          </div>
        </div>
      </div>
    </div>

还有这个脚本

    <script type="text/javascript"> 
    $(document).ready(function()
    {
        var msg = $("#form1").serialize();
        var options = {
            type: "POST",
            url: "callback_form.php",
            data: msg,
            success: function(data) {
                $("#modal p").fadeOut("fast");
                $("#form1").fadeOut("fast", function(){
                    $(this).before("<h4 class='text-center'>Thank you for your message</h4>");
                    setTimeout("$('#modal').modal('hide')", 3000);
                });
            },
            error: function(xhr, str){
                alert("Error occured!");
            }
        };
        $('#form1').submit(function(e) {
            e.preventDefault();
            $('#form1').ajaxSubmit(options);
        });
    });
</script>

该表单在 Mozilla、Opera、Chrome、Safari 和其他一些浏览器中运行良好,但在 IE11 和 Edge(我确信这不是整个列表)中,当我单击提交按钮时它没有做任何事情。它不会褪色,不会在控制台中显示任何错误。我还使用 jQuery Form Plugin 来解决 Safari 的问题,但不幸的是它由于某种原因无法处理 IE 和 Edge。也许我这里有一些语法错误?

【问题讨论】:

    标签: jquery forms ajaxform ajaxsubmit malsup-ajax-form


    【解决方案1】:

    好的,我找到了为什么不在 IE 中工作。您已将按钮插入表单之外。把这个放在里面。工作正常!

    <div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
      <div class="modal-dialog" role="document">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <h4 class="modal-title" id="myModalLabel">Callback request</h4>
          </div>
          <div class="modal-body">
            <p>Please send us your contact information and we will call you back soon</p>
            <form class="callback" method="post" id="form1">
              <div class="input-group">
                <span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
                <input type="text" required class="form-control" id="firstName" name="fio" placeholder="Your name">
              </div>
              <br>
              <div class="input-group">
                <span class="input-group-addon"><span class="glyphicon glyphicon-earphone"></span></span>
                <input type="tel" required class="form-control" id="phoneNumber" name="phone" placeholder="Phone number">
              </div>
              <br>
              <div class="input-group">
                <span class="input-group-addon"><span class="glyphicon glyphicon-envelope"></span></span>
                <input type="email" class="form-control" id="inputEmail" name="email" placeholder="Email">
              </div>
              <br>
              <textarea class="form-control hidden-sm hidden-xs" rows="3" id="textField" name="comment" placeholder="Additional information" style="width:100%"></textarea>
              <input type="hidden" class="form-control" name="subject" value="Callback request">
              <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button type="submit" class="btn btn-primary submit" form="form1" onclick="">Submit</button>
              </div>
            </form>
            <p class="text-center">We don't share any of your personal data with anyone</p>
          </div>
    
        </div>
      </div>
    </div>
    

    【讨论】:

    • 非常感谢。我之前有这个想法,但没有测试,因为我认为它看起来很糟糕。但是表格看起来还不错。
    最近更新 更多