2012-02-20 20 views
1

私はjquery validateを使用するフォームを持っており、フォームはsubmitとblur(onfucusout)で検証されます。私のフィールドのいくつかは、jqueryマスクプラグインを使用してマスクを持っています。マスクは、フォーカスが入ると、フィールド---(---)---/----にこのようなものを置きます。ユーザーがこのフィールドをクリックすると、(---)---/----が消えます。私の問題は、フィールドが黒くなっているにもかかわらず、ユーザーが空白のままではなく、(---)---/----を入力したと考えて検証エラーが出ていることです。Jquery Validate - 入力マスクの衝突

私の最初の考えは、(---)---/----が消えた後に検証するようにバリデーションを遅らせることでした。私の質問は、文字がなくなった後にフィールドを評価するようにバリデーションをどのように設定するのですか?これが適切な修正でない場合、誰かが私にこの問題を解決させる手助けをすることができます。

もう一度、マスク文字がなくなる前に検証がトリガーされているためだと思います。マスクされた場所の所有者が消えた後で検証する必要があります。助けてくれてありがとう。

答えて

0

私はこの問題に対処しました。

私の場合は、入力マスク:私のテスト例えば "(999)999-9999"

私は次のようでした:

(1)私がした最初の事は何を決定しました。私のDOMで文字が生成されていました。例: FireBug Consoleで以下のコードを使用してください。

$( '#のMyPhoneNumberID')。KeyDownイベント(関数(){ はconsole.log($(この).val())

私の場合は

それは、以下の(_)を吐き出しました。から ___

(2)私が使用を回避するには、(携帯電話用)私の正規表現を更新したと例えば正規表現 の一部としてマスクを含める「(_)から ___」OR正しい電話番号が入力されました。

使用正規表現: 「^:(1)(:\ S *(:(+?) - ??????| |()\ S *)(\ dの{3} | \ {3} | _ {3} | \ s {3} | \ s {3} | \ s {3} )?(?: - |。)?\ s *)?(\ d {4} | _ {4} | \ s {4})$ "