表格不在iPad上提交

时间:2015-10-16 17:36:43

标签: javascript jquery html twitter-bootstrap twitter-bootstrap-3

我有以下模态结构,其中包含一个表单:

<div class="modal fade" id="by-email" role="dialog" >
    <div class="modal-dialog">
        <div class="modal-header">
            <small class="waiting"></small>
        </div>
        <div class="modal-content">
            <form action="/test" method="post" id="form-email">
                <button type="button" class="btn btn-default btn-modal" data-dismiss="modal">Cacenl</button>
                <input type="submit" class="btn btn-primary btn-modal btn-send" value="Send">
            </form>

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

另外,我正在使用jQuery来显示&#34;加载gif&#34;一旦用户通过提交按钮提交表单:

$('.btn-send').on('click', function(e){

    /* with this line, I pretend to disable both buttons in order to 
       prevent the user click them while the form is submitted */
    $('.btn-modal').attr('disabled', "disabled");

    /* show the gift image */
    $('.waiting').fadeIn('fast');
});

在大多数浏览器中,它很酷。但是在iPad中,表单从未提交过。根据我的调试会话,这发生在iPad上:

  1. 点击提交按钮
  2. 禁用按钮
  3. 正在显示加载图片
  4. 奇怪的是,如果我删除行$('.btn-modal').attr('disabled', "disabled");,我可以在iPad上使用它,但是因为按钮没有被禁用,也不会显示加载。那么,如何在iPad中防止此错误?提前谢谢

3 个答案:

答案 0 :(得分:1)

提交按钮单击的默认操作是提交表单。在jQuery中,您可以使用事件处理程序中的ps aux | grep celeryevent.preventDefault()来防止发生默认操作。

  

不会触发事件的默认操作

http://api.jquery.com/event.preventdefault/

您的代码应如下所示

return false;

答案 1 :(得分:1)

让表单提交而不更改参与/触发提交过程的元素。稍后禁用按钮:

$('.btn-send').on('click', function(e){

    setTimeout(function() {
      /* with this line, I pretend to disable both buttons in order to 
         prevent the user click them while the form is submitted */
      $('.btn-modal').attr('disabled', "disabled");

      /* show the gift image */
      $('.waiting').fadeIn('fast');

    }, 1);

});

答案 2 :(得分:0)

您可以通过ajax提交表单。成功后,您可以禁用该按钮。一个例子是:

$('.btn-send').on('click', function(e){
    $.ajax({
        url: /test,
        type:'POST',
        data: { 'foo': foo},
        success: function(data) {
              $('.btn-modal').attr('disabled', "disabled");

              /* show the gift image */
              $('.waiting').fadeIn('fast');    
        }
    )};
});

您可能需要稍微编辑一下,但这是要点。