「Contact Form 7にtype=”file”を設置した場合Safari Version11.1で機能しない」の対処法

Contact Form 7にtype=”file”を設置した場合Safari Version11.1で機能しない

 

こちらに書いているとおり、safariのバグらしい。

同フォーラムのコメントに書いているJSコードを書いて対応した。

jQuery(function($) {
 $(".wpcf7 input[type='submit']").click(function() {
  $("input[type=file]").each(function() {
    if($(this).val() === "") {
        $(this).remove();
    }
  });
 });
});

しかし、この方法では

たとえばフォームに何も書き込まず
送信を押してエラー出すと、添付ボタンが消えてしまいます。

とのこと。

なので、input type=file をlabelで囲む形式に変更して、以下のJSを書いて対処した。