2011-02-04 56 views
3

我想使jquery驗證忽略默認文本。
我有檢查默認文本的方法是檢查element.value ==元素替代文字jquery驗證:如何忽略佔位符文本(產生默認/空白錯誤)

這裏是我的代碼,但它返回invalid不管它的空白,默認文本,或任何其他文本:

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

}); 

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

你能包括你所有的代碼嗎?你如何綁定驗證器等 – Victor 2011-02-05 00:28:33

回答

0

HTML5支持佔位符作爲標記的一部分。你可以使用jQuery來處理其他瀏覽器。

一份詳細的方式做到這一點,提出在http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html

+0

謝謝,但它不能幫助我解決手頭的問題。我只想讓這個小代碼起作用,而且我之前看到過它。如何在沒有HTML5的情況下做到這一點? – user583330 2011-02-05 01:11:30

+0

你看過鏈接嗎?這表明如何在非HTML5瀏覽器中執行相同的操作。 – 2011-02-11 11:16:56

0

您可能正在使用不採取屬性ALT一個元素上的Alt是圖像和等不輸入字段!因此瀏覽器不會接受它。

嘗試使用如下屬性:「data-default」或任何包含「data- *」的屬性來存儲這些值。

有時我發現一些瀏覽器可以讀取/操作某些以意外行爲行事的屬性。

+0

好吧,讓我們忘記「alt」數據存儲。我怎樣才能使這項工作,即使我只是說名稱==「輸入你的名字在這裏」 - 返回false(指定字符串,而不是在alt中查找它) – user583330 2011-02-05 01:12:45

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

    });