入力要素にonchangeイベントがあります。 onchangeイベントは、値が受け入れられなかった場合にユーザーに警告し、input要素にフォーカスを戻します。 しかし、ユーザーが要素をクリックすると、onchangeイベントは発生しません。これは、ユーザーがそれ以上の変更を行っていないために理解できますが、一度だけ検証するという問題が発生します。入力要素の変更前の値を設定することはできますか
変更前の値にリセットする可能性のある解決策を模索しましたが、ユーザーが入力した値を修正することを可能にするために可能な限り避けたいと思います全体をもう一度入力してください。
もう1つの可能性は、ぼかしイベントに検証を入れることでしたが、これは他の要素がフォーカスされていると発砲するイベントなどの他の問題を引き起こします。
ユーザーが入力値を 'X'から 'Y'に変更した場合、要素にフォーカスを戻して値を 'Y'として残してもよいが、 'X'値が変更された場合、ユーザーが 'X'に変更すると変更イベントはその後発生しませんが、 'Y'のままにして再度フォーカスを失うと、変更イベントは 'X ' おもちゃ'?
私がCSS、jQuery、アラートを使用しているかどうかは、実際には問題の原因ではありません。問題は、要素にフォーカスを戻さなければならないことです。残念なことに、これは、後続の変更イベントが元のイベントではなく、「新しい」値に基づくことを意味します。 – Matt
ユーザーはフォーム要素のフォーカスを与えます。ユーザーが値を変更します。値は無効であり、フォーム要素がフォーカスを失うことなく** **そのようにマークされています。ユーザーは値を再び変更します。値が有効であるとチェックされ、無効なマーキングが削除されます。 – Tim