Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Safari忽略onclick事件中的提交更改_Javascript_Safari_Submit - Fatal编程技术网

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

Javascript Safari忽略onclick事件中的提交更改,javascript,safari,submit,Javascript,Safari,Submit,对于Drupal站点,我开发了一个相当简单的模块来防止用户多次按下提交按钮。当按下submit(提交)按钮时,它会被一条小消息所取代,以保持耐心 除了Safari之外,所有浏览器的问题似乎都很好 $("input[id^='edit-submit']").click(function(e){ var message = Drupal.t('Please wait...'); $(this).hide(); $('<span>'

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

除了Safari之外,所有浏览器的问题似乎都很好

    $("input[id^='edit-submit']").click(function(e){
        var message = Drupal.t('Please wait...');
        $(this).hide();
        $('<span>' + message + '</span>').insertAfter(this);
    });
$(“输入[id^='edit-submit'])。单击(函数(e){
var message=Drupal.t('请稍候…');
$(this.hide();
$(''+消息+'')。在(此)之后插入;
});
当我查看调试器时,我看到一个属性出现style=“display:none;”,但Safari似乎忽略了它。当我手动(通过开发者工具)添加一个display:none时,按钮消失了

我不知道它是否相关,因为当我在click函数体之间添加console.log()时,它会执行一次($(this)值也指向正确的元素),但它不会响应该按钮上的任何更改

似乎从你点击submit按钮的那一刻起,它就处于某种锁定状态——这也可以防止双重提交——但我想确定这是safari的标准行为,然后是一个将来可能困扰我的bug

我试过用谷歌搜索某些关键词,但我找不到任何描述Safari中这种行为的文档

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

尝试使用:

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

不幸的是,这不起作用。它与hide()大致相同“匹配的元素将立即隐藏,没有动画。这大致相当于调用.css(“display”,“none”),只是display属性的值保存在jQuery的数据缓存中“->Try.detach(),然后,暂时删除DOM.Thx中的元素,以便单独思考-但从我分离()提交按钮(与删除按钮相同)的那一刻起,表单就不再被提交。我将编辑我的原始问题以添加这段信息。相同的行为hide()似乎有效,但它会停止提交表单。对于“分离”和“删除”也一样。