0

これをどうするかはよくわかりませんが、次のようになります。

関数をトリガーするフォーム要素があります (主に検証目的で)。これは、クリック時、変更時などにトリガーされます。これらはバニラ JavaScript で記述されています。

それが単純な HTML 要素であれば、すべて正常に機能します。たとえば、要素は変更時に発火します。

ただし、jQuery スクリプト (jQuery カラー セレクターなど) を使用すると、その jQuery スクリプトがフィールドにデータを入力しても、検証スクリプトは起動しません。

クリックしたり、ぼかしたり、変更したりしないので、これは明らかだと思います。jQueryスクリプトが変更しているだけです。

もちろん、カラー セレクターの jQuery スクリプトで JavaScript を変更して、検証スクリプトも起動するようにすることもできますが、クリック時、変更時、ぼかし時などだけでなく、より良い方法があるはずです。別のスクリプトがそれを変更していることを検出します。さまざまな機会やスクリプトにこれが必要です。

もう 1 つの例は、評価スクリプト (5 段階評価) です。非 jQuery フォールバックとしてラジオ ボタンを使用し、jQuery スクリプトはそれらのラジオを (CSS を使用して) 非表示にし、星の画像を表示してから、ユーザーが星の画像を操作したときにラジオを変更します。そうすれば、jQuery の可用性に関係なく、サーバーはフォームの送信を同じ方法で処理します。ただし、検証スクリプトは起動しません。

何か案は?

4

1 に答える 1

0

どうやら、javascript の実行後に要素が dom に挿入されているようです。$.blur() の代わりに $.live() を使用してみてください

そのため、このスクリプト要素がページのレンダリング後に挿入されたとしても、イベントは em にバインドされます。

http://api.jquery.com/live/

于 2013-01-30T20:03:41.583 に答える