2009-08-10 13 views
0

Ich versuche, die Fehlermeldung für einen CustomValidator, der einen ValidatorCallOut über Javascript verwendet, zu aktualisieren. Grundsätzlich wird überprüft, ob eine eingegebene Nummer ein Inkrement einer bestimmten Nummer ist. Ich habe etwas Code, der die Fehlermeldung beim ersten Mal aktualisiert, aber danach wird es nicht mehr die Fehlermeldung aktualisieren, obwohl durch JavaScript-Warnungen sehe ich die Werte werden tatsächlich aktualisiert. Hier ist die Client-Seite Javascript-Validierungsfunktion Ich verwende:ValidatorCallOut-Fehlermeldung von Javascript aktualisiert

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

Jede Idee, wie die Fehlermeldung zu halten jedes Mal, dies auszuführen aktualisiert wird zu validieren?

Antwort

3

Versuchen Sie Folgendes:

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

Der Grund, warum die Nachricht klebt, sobald es initialisiert wurde, weil Callout wird zunächst nicht erstellt. Sobald es erstellt wurde, wird Callout nur ausgeblendet und bei der nächsten Anzeige nicht neu erstellt. Daher wird die Nachricht, mit der sie beim Erstellen erstellt wurde, beibehalten und bleibt erhalten. Der obige Code ist ein Hack und es sollte wirklich eine Methode in der Form von set_ErrorMessage geben, aber es gibt keine.

+0

dies funktionierte perfekt dank Spark. Diese Antwort sollte als gelöst markiert werden. – Somedeveloper

Verwandte Themen