javascript - Safari 忽略 onclick 事件中的提交更改

标签 javascript safari submit

对于 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是相关的,因为当我在点击函数主体之间添加一个 console.log() 时,它会执行一次($(this) 值也指向正确的元素)但它不会响应该按钮上的任何更改。

似乎从您单击提交按钮的那一刻起,它就处于某种锁定状态 - 这也可以防止双重提交 - 但我想确定这是 safari 的标准行为,然后是一个可能困扰的错误 future 的我。

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

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

最佳答案

尝试使用:

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

关于javascript - Safari 忽略 onclick 事件中的提交更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21040110/

相关文章:

javascript - 在函数内部修改变量后,为什么变量未更改? -异步代码引用

AngularJS 应用程序无法在 iPad/iPhone Safari 上加载(仅在页面刷新/第二次加载后及之后工作)

macOS 不会通过缩放、错误或功能更改 dppx?

javascript - 使用 html 表单提交运行 javascript 代码

javascript - POST 表单动态生成的输入

javascript - 获取最接近输入的值

javascript - 二进制到十进制 Javascript

javascript - 如何使用jquery从window.open js函数获取元素和html

Safari 不支持 CSS3 column-span 属性。为什么?

javascript - 同一页面上有两个表单和两个脚本,无论是否提交都会调用第一个脚本