对于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的标准行为然后是一个可能困扰的错误我将来。
我尝试使用Google搜索某些关键字,但在Safari中找不到任何描述此行为的文档。
编辑:我也尝试删除(并分离)onclick上的按钮,使按钮消失,但随后表单不再提交。答案 0 :(得分:1)
尝试使用:
.css('display', 'none');