对于一个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');