3

jquery validate がデフォルトのテキストを無視するようにしたいと思います。
デフォルトのテキストを確認する方法は、要素の代替テキストが element.value == かどうかを確認することです

これが私のコードですが、空白、デフォルトのテキスト、またはその他のテキストのいずれであっても無効を返します。

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

});

        rules: {
        Name: "required notDefaultText",
        Email: "required notDefaultText email"
    },
4

3 に答える 3

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"
            }
        }

    });
于 2012-03-07T13:15:03.633 に答える
0

HTML5 では、マークアップの一部としてプレースホルダーがサポートされています。jQuery を使用して他のブラウザーを処理できます。

これを行う適切な方法は、 http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.htmlに示されています。

于 2011-02-05T00:27:30.313 に答える
0

おそらく、alt 属性をとらない要素で alt を使用している可能性があります。alt は画像などの入力フィールドではありません! したがって、ブラウザはそれを受け入れません。

これらの値を保存するには、「data-default」または「data-*」を含む属性を試してください。

予期しない動作をする特定の属性を読み取ったり操作したりするブラウザーを見つけることがあります。

于 2011-02-05T00:31:07.233 に答える