質問

2011-09-04 15 views
1

ここでは、私が http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/質問

すべてがよさそうだが、私は、私は私の入力を持っている小さな問題

を持っているを使用しようとしているjQueryのインラインフォーム検証のリンクありこの種の検証を使用する

'validate[length[6,15]]' 

入力値の長さの数がチェックされ、6より小さいかそれより大きい場合は15が与えられます。

ここで、値の長さ= 0を入力する可能性を追加して、検証でエラーメッセージが発生しないようにします。

これは可能ですか?

UPDATE

これは、私が良い仕事をしていたこの'validate[length[6,15]]'すべてのものを使用していたとき、今すぐ機能

<script type='text/javascript'> 
    $(document).ready(function() { 
$('#standart_form').validationEngine(); 
$('#standart_form').submit(function() { 
    return false; 
}); 
}); 
    </script> 

を遮断提出しています。しかし、私が新しいカスタム関数を使用しようとすると、フォーム全体が、私のAjaxベースのアプリケーションを台無しにしてしまいます。

答えて

1

使用しているプラ​​グインは、このままではサポートされていませんが、カスタマイズ機能を使用すると、この動作を自分で実装できます。

たとえば、フィールドの検証時に使用する正規表現を指定できます。あなたの翻訳ファイルに追加する必要があります:

"emptyOrLengthBetween6And15": { 
    "regex": /^$|^.{6,15}$/, 
    "alertText": "* Empty, or between 6 and 15 characters long" 
}, 

次にあなたがcustomバリデータでそれを参照することができます

class="validate[custom[emptyOrLengthBetween6And15]]" 

あなたはまた、独自の検証機能を書き込むことができます。

function checkEmptyOrLengthBetween6And15(field, rules, i, options) 
{ 
    var val = field.val(); 
    if (val.length > 0 && (val.length < 6 || val.length > 15)) { 
     return "* Empty, or between 6 and 15 characters long"; 
    } 
} 

funcCallバリデーターで使用してください。

class="validate[funcCall[checkEmptyOrLengthBetween6And15]]" 
+0

ありがとうございます!私はカスタム正規表現 – David

+0

をもう1つ質問するようにします。私はこれをajaxによって呼び出され、ajaxによって提出される形式で使用します。私はまた、送信ボタンが押されたときにPHPがPHPのフォームを送信するのを防ぐjavascript関数を持っています。標準の検証関数を使用すると、すべて動作します。しかし、私はあなたのカスタムを使用すると、それだけでなく、PHPを介してフォームを提出動作します。カスタム機能を自動送信から防ぐ方法を知っていますか? – David

+0

@David、申し訳ありませんが、私の悪い、関数は、ブール値ではなく、エラーメッセージを返す必要があります。回答はそれに従って更新されました。 –