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

  1. HOME > 
  2. 加藤 正人 > 
  3. タイトル

Safari のフォームボタンと jQuery submit()

2016/03/12

Safari のフォームボタンと jQuery submit()

 

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

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

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

ということが判明。

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

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

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

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

この記事は加藤 正人さんが書いています!

加藤 正人

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