由于文件上传按钮,联系表7不适用于Safari

时间:2018-07-23 18:30:42

标签: file-upload safari contact-form-7

您已经知道;使用Safari且联系人表单包含文件上传按钮时,无法提交使用CF7插件构建的联系人表单。仅当用户将上载字段留为空白时才出现此问题,因此无需选择文件。

对我来说,解决此问题的最佳方法是在未选择文件的情况下删除文件上传按钮。通过以下Jquery脚本,我已经部分成功地做到了这一点:

jQuery(document).on('submit', '.wpcf7-form', function (e) {
  jQuery('input.wpcf7-file').each(function() {
    if (jQuery(this).val() == '') jQuery(this).remove();
  });
});

只剩下一个问题……当提交表单时,上载字段留为空白时,按钮被删除,但是旋转箭头图标保持旋转,并且什么也没有发生。仅当用户第二次提交表单时,提交才会成功。

因此,我想用几行扩展上面显示的代码,如果文件上传字段留为空白,该代码将自动第二次提交联系表。因此,用户不必两次提交联系表,这会非常令人困惑……

有人可以帮我这个忙吗?我认为对于许多其他用户来说,这也是一个很好的解决方案,因为我已经阅读了有相同问题的人的很多话题。

提前感谢并祝您愉快!

最诚挚的问候

1 个答案:

答案 0 :(得分:0)

我认为您的问题源于以下事实:提交表单开始后(或至少在收集表单字段之后)触发了“提交”方法。因此,再次单击它,将重新提交没有空白字段的表单。

我已经实现了脚本的一个版本,但是绑定了单击“提交”按钮,而不是表单的“提交”方法。到目前为止-似乎可行。

我尝试过使其仅在受影响的浏览器上触发(使用nagivator.userAgent.match()),但在我寻找的短暂时间内运气不佳。

<script>
jQuery(document).on('click', '.wpcf7-form [type=submit]', function (e) {
  jQuery('input.wpcf7-file').each(function() {
    if (jQuery(this).val() == '') jQuery(this).remove();
  });
});
</script>