javascript – 在表单提交后显示模态,直到下一页加载…不适用于safari?

前端之家收集整理的这篇文章主要介绍了javascript – 在表单提交后显示模态,直到下一页加载…不适用于safari?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样的按钮
<form action="/category" method='GET'>
    <button type="submit" class="btn btn-default render">
        name
    </button>
</form>

并且我有一些javascript,每当按钮被点击时启动一个模态…这只是让用户知道下一页正在加载.

<script type='text/javascript'>
    $(document).ready(function(){
        $(".render").click(function(evt){
            $('#render_page').modal('show');
        });
    });
</script>

这是模态的html

<div class="modal fade" id="render_page" role="dialog">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="form-horizontal">

                <div class="modal-body">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <div id="user_msg" align="left">Rendering Page... </div>
                </div>

            </div>                                  
        </div>
    </div>
</div>

这一切在Firefox和Chrome上都可以正常工作,但是Safari不会显示模态?如果我把表单放在按钮中,它将启动模态,但它不会提交表单.所以这两个方面,表单提交和模式都可以做,但是safari不想这样做?

解决方法

尝试这个
<script type='text/javascript'>
    $(document).ready(function(){
        $(".render").click(function(evt){
            evt.preventDefault();
            $('#render_page').modal('show');
        });
    });
</script>

https://jsfiddle.net/y64qyjzo/

更新:添加了一个定时器,允许用户注意到模态:

$(document).ready(function() {
  $(".render").click(function(evt) {
    evt.preventDefault();
    $('#render_page').modal('show');
    setTimeout(function() {
      $('#testForm').submit();
    },1000)
  });
});

(将id’testForm’添加到表单中)

https://jsfiddle.net/y64qyjzo/3

猜你在找的JavaScript相关文章