2011-07-29 72 views
0

試圖忽略默認值(使用的字段提示可訪問)的驗證。JavaScript驗證 - 當表單會</p> <p>通過它字段的默認忽略字段值

的驗證是在javascript:

 if (giftCardNumber >= 'xxxxxxxxxxxxxxx' && giftCardNumber <= 'xxxxxxxxxxxxxxxxx') { 
    giftAlert (incdpy_msg_065,"frmGCD_"+formIndex+"_Number"); 
    if ((typeof TeaLeaf != "undefined") && (typeof TeaLeaf.Client != "undefined") && (typeof TeaLeaf.Client.tlAddEvent != "undefined")) { // Tealeaf Include 
      var nVO = { ErrorMessage :incdpy_msg_065} 
      var subtype="CustomErrorMsg"; 
      TeaLeaf.Event.tlAddCustomEvent(subtype, nVO); 
    } 

    return false; 
    } 

我認爲這是一個非常簡單的線條 - 如果(giftCardnumber === 「輸入禮品卡」)...

XXX的是出於安全考慮。

或者我可以清除所有關於焦點和提交的默認值嗎?

回答

0

你可以只檢查對默認值屬性:

if (element.value == element.defaultValue) { 
    // it has its default value 
} else { 
    // it has some value other than its default 
} 

的常用方法是使用的onfocus如果value == defaultValue,將該值設置爲「」(空字符串)。然後onblur,做相反的處理(即,如果value == '',設置爲defaultValue)。

0

是 - 如果您知道默認值是什麼,並且可以對其進行驗證,那麼這是最直接的方法。

+0

默認值存儲在輸入的* defaultValue *屬性中,所以不那麼難以知道。 :-) – RobG

+0

好的。假設你沒有任何理由改變這個。 –

0

您基本上需要測試該值是。那麼這取決於您是否想要阻止提交表單或向服務器發送空值。

您是否嘗試過並遇到問題?

編輯: 正如你所說清除焦點上的值將是很好的(對於用戶),但不夠,因爲用戶仍然可以提交表單而不觸摸該字段。在提交你可以做

if(giftCardNumber === "default value") { 
    giftCardNumberField.value = ""; 
} 

只要你有機會到外地,這將只是發送一個空值到服務器。這也會產生惱人的習慣,將字段留空(如果頁面沒有被提交,因爲表單無效或者因爲您通過ajax進行了提交,那麼會很醜陋)。

其實我不知道最佳做法是什麼。看看ext文檔,我發現他們的Textfield只要提供一個html名字就會提交它的空文本。

+0

這就是我猜,但我不確定如何去... – Jason

+0

好吧我編輯我的回覆,這是相當簡單:) – Jad

+0

工程 - 種。我實際上需要它返回像(giftCardlength === 0) – Jason