Domanda

Sto cercando di aggiornare il messaggio di errore per un CustomValidator che utilizza un ValidatorCallOut tramite JavaScript. Fondamentalmente il suo controllo per vedere se un numero inserito è un incremento di un numero specificato. Ho qualche codice che aggiornerà il messaggio di errore la prima volta che viene eseguito, ma dopo che non è più aggiornerò il messaggio di errore, anche se tramite JavaScript avvisi vedo i valori sono in realtà in fase di aggiornamento. Ecco la funzione di validazione JavaScript lato client che sto usando:

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

Qualche idea su come mantenere il messaggio di errore aggiornato ogni volta che questo viene eseguito per convalidare?

È stato utile?

Soluzione

Provare quanto segue:

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

Il motivo per cui il messaggio si attacca una volta che è stato inizializzato perché didascalia non viene creato inizialmente. Una volta che è stato creato, didascalia è solo nascosto e non viene ricreata sulla successiva mostra. Così, il messaggio che è stato inizializzato con la data di creazione si attacchi e persistono. Il codice di cui sopra è un hack e ci realmente dovrebbe essere un metodo lungo le linee di set_ErrorMessage, ma non ce n'è uno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top