0

Mac Safari (さらに言えば、iPad Safari) の恐ろしく奇妙な問題 --

ユーザーがファイル入力またはテキスト文字列のいずれかを指定できるようにするフォームをまとめていますが、両方を指定することはできません。したがって、各入力に関連付けられたラジオ ボタンがあります。フォーム要素は無効になっている状態から始まり、ラジオ ボタンの 1 つがクリックされると、いくつかの jQuery が実行され、ユーザーがファイルを選択するかテキストを入力できるように無効状態が調整されます。これは、Mac Chrome、Firefox、Opera、そして驚くべきことに IE 9 でも正しく動作します。

Safariではそのような運はありません:

  • ファイル フィールドを有効にするラジオ ボタンをクリックしても、console.log() は無効な属性が削除されたことを示唆していますが、何も起こらないようです。

  • テキストフィールドを有効にするラジオボタンをクリックしても、何も起こりませんが、FILE FIELD ウィジェット (「Choose...」ボタン) が完全に消えます。

  • 2 つのラジオ ボタンの間を何度もクリックしても何も起こりません。

ただし、何かをクリックする前に、フォーム領域で「要素の検査」を行うと、すべてが正しく機能します。さらに、最初にリンク フィールドのラジオ ボタンをクリックして、ファイル フィールドが消えるようにし、[要素の検査] を実行すると、フォームが再描画され、ボタンとフィールドの両方の適切なビューが表示され、すべてが正しく機能します。

ガク。この背後には大量のコードがあるため、それをフィドルに変換できる場合とできない場合があります。しかし、私の現在の信念は、どうにかして本当に目立たない Safari のバグに潜り込んでしまったということです。私は同情か何かを求めてここに投稿していると思います.過去に他の誰かが同様のことに遭遇したかどうかを確認します. テイカーはいますか?:)

4

1 に答える 1

1

しばらく前に、これに似た奇妙な Safari エラーが発生しました。

私の場合の解決策は、jQueryを使用して要素でいくつかのことをトリガーすることでした-フォーカスを与えたり、再描画したりする可能性のあるもの。私の場合は次のとおりです。

jQuery(el).css("border", "none");

トリックをしました。

そもそも要素には境界線がありませんでした。要素がブラウザによって再描画/いじられただけです。

于 2013-08-09T18:34:33.057 に答える