DEVELOPERS BLOGデベロッパーズブログ

  1. HOME > 
  2. 加藤 正人のデベロッパーズブログ > 
  3. Safari のフォームボタンと jQuery submit()

加藤 正人のデベロッパーズブログ

加藤 正人

氏名
加藤 正人
役職
多分SE
血液型
秘密
出没
美味しいもののあるところ
特色
タヒチ大好き。ちょいメタボ。

PhpSpreadsheet でExcel ファイルを読み込む (CakePHP3)

2016/03/12

PhpSpreadsheet でExcel ファイルを読み込む (CakePHP3)

 

現在開発中のサイトのお客様から入力フォームが動作しないケースがあると連絡をいただいた。

いろいろ調べてみたところ、

  • iOS のスマホで Safari を使うとフォーム送信ができない
  • Windows 機や Android デバイスの Chrome や Firefox は OK

ということが判明。

送信データをダンプしつつ調べてみたところ、フォームの submit ボタンの click イベントをフックして、jQuery コードでフォームオブジェクトに対し submit() を適用すると、

  • Safari の場合、クリックしたボタンの情報 ({name属性値}={ボタンラベル}) が送信されるフォームデータに入らない
  • Chrome や Firefox ではこのデータがフォームデータに入る

という違いがあることが判明。そこで、submit() の実行前にボタン情報を補うべく

のようにすることで、Safari とそれ以外のブラウザで同じように動作するようになった。

関連タグ: Safari  jQuery