2009-08-10 42 views
0

我試圖更新通過javascript使用ValidatorCallOut的CustomValidator的錯誤消息。基本上它檢查輸入的數字是否是指定數字的增量。我有一些代碼會在第一次運行時更新錯誤消息,但在此之後,它將不再更新錯誤消息,儘管通過JavaScript警報我看到值實際上正在更新。下面是客戶端我使用JavaScript驗證功能:更新Javascript中的ValidatorCallOut錯誤消息

function checkIncrement(sender, args) { 
    var incrementValue = parseInt(sender.orderIncrement); // Custom attribute registered with RegisterExpandoAttribute 
    var remainder = args.Value % incrementValue; 

    if ((remainder) != 0) { 

     var remainder, lowRange, highRange; 
     lowRange = parseInt(args.Value - remainder); 
     highRange = parseInt(lowRange + incrementValue); 

     sender.errormessage = "Closest possible values are <b>" + lowRange + "</b> or <b>" + highRange + "</b>"; // Gets updated once, but not after that 
     alert("Low Range: " + lowRange); // always updated with current value 

     args.IsValid = false; 
     return; 
    } 

    args.IsValid = true; 
} 

如何保持更新一次,這是運行時間驗證錯誤消息的任何想法?

回答

3

嘗試以下操作:

sender.errormessage = "Your message here"; 
var cell = sender.ValidatorCalloutBehavior._errorMessageCell; 
// cell is going to be null first time. 
if (cell != null) { 
    cell.innerHTML = "Your message here"; 
} 

爲什麼一旦被初始化的消息堅持的原因是因爲標註不最初創建。一旦創建完成,標註就隱藏起來,並且在隨後的顯示中不會重新創建。因此,它在創建時被初始化的消息將堅持並持續。上面的代碼是一個黑客,真的應該有一個沿着set_ErrorMessage的方法,但沒有一個。

+0

這工作完美謝謝星火。這個答案應該被標記爲解決。 – Somedeveloper 2011-02-08 10:00:21