对于一个Drupal网站,我开发了一个相当简单的模块来防止用户多次按下提交按钮。按下“提交”按钮后,它会被一条小消息取代,以保持耐心。

在所有浏览器中的问题似乎都可以正常运行,但Safari除外。

    $("input[id^='edit-submit']").click(function(e){
        var message = Drupal.t('Please wait...');
        $(this).hide();
        $('<span>' + message + '</span>').insertAfter(this);
    });


当我查看调试器时,我看到一个属性显示为style =“ display:none;”。但是Safari似乎忽略了它。当我手动(通过开发人员工具)添加显示时:无按钮消失。

我不知道它与jQuery doesn't run in Safari on form submit是否相关,因为当我在click函数主体之间添加console.log()时,它会执行一次($(this)值也指向正确的元素),但是它没有响应该按钮上的任何更改。

看来,从您单击“提交”按钮的那一刻起,它就处于某种锁定状态-这也可以防止两次提交-但我想确定这是野生动物园的标准行为,然后是一个可能困扰我的错误未来。

我尝试使用某些关键字进行谷歌搜索,但找不到任何描述Safari中此行为的文档。

编辑:我还尝试删除(和分离)onclick上的按钮,这会使该按钮消失,但随后该表单不再提交。

最佳答案

尝试使用:

.css('display', 'none');

09-10 10:45
查看更多