1

2 つの異なるサイトで使用しているカスタマイズされた登録フォームがあります。user_pass と pass2 の 2 つのフィールドがあります。user_pass フィールドには、次の検証クラスがあります。

class="validate[required,custom[password],minLength[7]]"

言語ファイルのカスタム正規表現は次のようになります。

 "password":{
     "regex": /^(.*\\d.{2,})|(.*[@#?$%^&+=\\*].*)(.?[a-z].*)$/,
     "alertText": "* Must contain letters, numbers and symbols."
  },

次に、pass2 フィールドには次の検証クラスがあります。

class="validate[required,equals[user_pass]]"

mosleyfamilies.net/user-registrationにアクセスすると、フォームの動作を確認できます。指示に従ってパスワードを入力し、次のフィールドでそれを正確に繰り返すと、フィールドが一致していなくても、フィールドが一致しないというエラーが表示されます。

次に、uniquelyyours.blogdns.com /simple-registration にアクセスしてまったく同じことを行うと、パスワードは正しく検証されます。Firebug はエラーを表示せず、干渉していると思われるいくつかのプラグインを無効にしようとしましたが、何もしませんでした。

私の人生では、両方のサイトですべてがまったく同じであるのに、mosleyfamilies.net でフィールドが検証されない理由がわかりません。どんな助けでも大歓迎です!ありがとうございました!

4

2 に答える 2

0

これですべてが解決するかどうかはわかりませんが、最小文字数を制限したい場合は、最初のコードで minLenght の代わりに minSize を使用する必要があります。

class="validate[required,custom[password],minSize[7]]" 

検証例

于 2012-10-18T14:04:13.420 に答える
0

私の同様の問題が元のポスターの例と一致するかどうかは明らかではありませんが、要素 ID が提供されていないために同様の問題が発生しました。jquery.validation.js エンジンの equals 関数は、照合する要素の ID に依存しているようです。例えば:

    <input name="email" type="email" class="validate[required,custom[email]]">
    <input name="confirm_eml" type="email" class="validate[required,custom[email],equals[email]">

「equals」関数にはラッチする要素 ID が必要なため、機能しません。次のように id を追加するだけです。

    <input name="email" type="email" id="email" class="validate[required,custom[email]]">
    <input name="confirm_eml" type="email" class="validate[required,custom[email],equals[email]]">
于 2013-05-08T07:58:37.520 に答える