2011-02-04 28 views
3

jquery validateがデフォルトテキストを無視するようにしたいと思います。
デフォルトのテキストをチェックする方法は、element.value ==要素のaltテキストがあるかどうかを確認することですJquery Validate:プレースホルダテキストを無視する方法(デフォルト/空白でプロデュースエラー)

ここに私のコードですが、空白、デフォルトのテキスト、または他のテキスト:

$.validator.addMethod("notDefaultText", function(value) 
{ 
    if($(this).val()==$(this).attr('alt')) 
       return false; 

}); 

     rules: { 
     Name: "required notDefaultText", 
     Email: "required notDefaultText email" 
    }, 
+1

すべてのコードを含めることができますか?どうやってバリデータなどをバインドしていますか? – Victor

答えて

0

HTML5はマークアップの一部としてプレースホルダをサポートしています。 jQueryを使って他のブラウザを扱うことができます。

これを行うにはうまく提示方法は、画像のためのものであり、などの入力されていないフィールドあなたはおそらく、その属性のALTを取らない要素でAltキーを使用しているhttp://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html

+0

ありがとうございますが、手元の問題を解決するのに役立ちません。私はちょうどこの小さなコードを動作させたいと思っています。これはHTML5なしでどのように行うことができますか? – user583330

+0

リンクを見ましたか?これはHTML5以外のブラウザでも同じようにする方法を示しています。 –

0

で発表されました!したがって、ブラウザはそれを受け入れません。

「data-default」などの属性を使用するか、「data- *」を使用してこれらの値を格納してください。

予期せぬ動作をする特定の属性を読み込み/操作するブラウザがあることがあります。

+0

さて、 "alt"データストレージを忘れてしまいました。名前== "あなたの名前をここに入力する" - 偽を返す(altで検索する代わりに文字列を指定する) – user583330

4

私は同じ問題を抱えていたし、それをこのように解決し...私はそれがデフォルトのテキストをチェックしてい

の方法は、値が==要素がATTRをプレースホルダかどうかを確認することです。

$.validator.addMethod("notDefaultText", function (value, element) { 
    if (value == $(element).attr('placeholder')) { 
     return false; 
    } else { 
     return true; 
    } 
}); 

$("yourForm").validate({ 
     rules: { 
      title: { required: true, 
       notDefaultText: true 
      }, 
      description: { 
       required: true, 
       notDefaultText: true, 
       minlength: 2, 
       maxlength: 400 
      } 
     }, 
     messages: { 
      title: "Error text", 
      description: { 
       required: "Error text", 
       notDefaultText: "Error textp", 
       minlength: "Error text", 
       maxlength: "Error text" 
      } 
     } 

    }); 
+0

うまく働いた、ありがとう! –

関連する問題