単純なタスクのように見えますが、その方法を理解するのに苦労しています。
jquery 検証プラグインで検証するフォームがあります。text/textarea フィールドにすべての有効な ascii 文字があることを検証するカスタム検証があり、$.validator.addMethod() 機能を使用してクラス「ascii」を持つ任意のフィールドにそれをフックします。
私の問題は、検証を維持したいということですが、それらのガベージ文字をクリーンアップする別の短い JavaScript 関数もあります。検証が無効であると不平を言う前に、入力フィールドでクリーンアップを実行したいと思います。
true または false を返す前に検証メソッドにクリーンアップを入れようとしましたが、うまくいきませんでした。それをぼかしイベントにバインドしようとしましたが、うまくいきませんでした。
キーアップイベントにバインドするとうまくいきますが、それはハックのように感じます。そのフィールドの有効性をチェックする前にクリーンアップすることを認識できるように、そのことを検証に結び付けてもらいたいだけです。
ここで bindFirst という jquery 拡張機能を見つけました: How to order events bound with jQuery
クリーンアップを「最初に」ぼかしイベントにバインドしようとしましたが、うまくいきませんでした。
「依存」機能を使用して必要なものを引き出すことができると思いますが、カスタム検証を使用する場合、それはオプションではないようです。
私が言及したすべてのシナリオで..クリーンアップを実行しますが、フィールドが無効であるとすでに不平を言うまでは実行しません。フィールドに戻って元に戻すだけで、エラー メッセージが消去されます。
どんな助けでも大歓迎です。