Ich verwende den ValidatorCalloutExtender des Ajax-Toolkits, um Fehlermeldungen in einer Textbox anzuzeigen. Der ValidatorCalloutExtender erweitert sich auf einen RegularExpressionValidator, der das Textfeld überprüft. Das Problem, das ich habe, ist, dass ich die ValidationExpression und ErrorMessage dynamisch ändern muss, abhängig davon, welches Dropdown-Listenelement ausgewählt wurde, das dem Textfeld zugeordnet ist. Ich konnte dies erfolgreich mit clientseitigen Ereignissen und Javascript machen, aber dann kann ich nicht den ValidatorCalloutExtender dazu bekommen, die korrekt angezeigte ErrorMessage zu aktualisieren. Die Sache, die mich mehr verwirrt, ist, dass das in Firefox gut funktioniert, aber ich kann nicht scheinen, dass es in irgendeiner Version von IE funktioniert. Wenn jemand mir helfen kann, einen Weg zu finden, meine Fehlermeldung, die angezeigt wird, dynamisch zu ändern, würde es sehr geschätzt werden.Ajax-Toolkit dynamisch ändern ValidatorCalloutExtender
Antwort
Ok jeder,
dachte ich mein eigenes Problem und dachte, ich könnte meine Erkenntnisse stellen hier aus, wenn andere versuchen, etwas Ähnliches wie mir zu tun.
In Javascript übergebe ich das Objekt des regularyexpressionvalidator gebunden an ein Textfeld, in eine Funktion, die den regulären Ausdruck und die Fehlermeldung abhängig von einem Wert in einer Dropdown-Liste ändern. Wenn ein Benutzer den Wert der Dropdown-Liste änderte, sollte der Validator und der Ajax-Validatorcallout sofort aktualisiert werden und dem Benutzer entweder mitteilen, dass der Wert in der Textbox jetzt gültig oder ungültig war, aber aus diesem neuen Grund. Ich sage nicht, das ist der beste Weg, dies zu tun, aber das ist die Art und Weise, die für mich funktioniert und ich wollte es auf dem Client tun.
unten ist der Code, den ich verwende und (val) ist das RegularExpressionValidator Objekt, das in übergeben wird.
function setSearchRegEx(val)
{
var regExpression = "";
var valMessage = "Must be in the following format: ";
var message = "";
// set regex information depending on what drop down value they select.
switch (document.getElementByID('ddlValue1.ClientID').value) {
case "Value1":
regExpression = "^[a-zA-Z0-9'*\s-]{1,75}$";
message = valMessage + "[A-Z][0-9]'. #-";
break;
case "Value2":
regExpression = "^\[0-9]{3}-\[0-9]{2}-\[0-9]{4}|\d{9}$";
message = valMessage + "999-99-9999";
break;
case "Value3":
regExpression = "[a-zA-Z0-9'*\s-]{1,50}$";
message = valMessage + "[A-Z][0-9]'. #-";
break;
case "Valu4":
regExpression = "^\[0-9]{3}-\[0-9]{3}-\[0-9]{4}$";
message = valMessage + "999-999-9999";
break;
case "Value5":
regExpression = "^[0-9]{1,10}$";
message = valMessage + "9999999999";
break;
default:
regExpression = "";
message = "";
}
// set validation control values for the new drop down selected.
val.validationexpression = regExpression;
val.errormessage = message;
val.title = message;
// fire the validation function to validate what is currently in the textbox
val.isvalid = val.evaluationfunction(val);
//call the function to manipulate the UI
validatorUpdateDisplay(val);
}
function validatorUpdateDisplay(val)
{
if (val.isvalid) {
//make the error invisible
val.display = "none";
}
else {
var browser = navigator.appName;
//different browsers get updated differently, IE really the only main one to update differently.
if (browser == "Microsoft Internet Explorer") {
val.ValidatorCalloutBehavior._errorMessageCell.innerText = val.errormessage;
}
else {
val.ValidatorCalloutBehavior._errorMessageCell.textContent = val.errormessage;
}
//make the error visible
val.display = "inline";
}
}
Wie Sie Internet Explorer wie der Rest auf die gleiche Weise funktionierten nicht sehen kann die Browser gegen die ich getestet habe! Wenn jemand eine bessere Möglichkeit hat, dies zu tun, bitte teilen, und ich hoffe, diese Antwort hilft einigen Menschen aus!
Dank
- 1. Kann der ValidatorCalloutExtender dynamisch positioniert werden?
- 2. Ajaxtoolkit Postback Problem
- 3. Fehler beim AjaxToolKit Steuerung 3.5
- 4. Ändern ActionBar Hintergrundfarbe Dynamisch
- 5. Three.js ändern Lichtintensität dynamisch
- 6. Linkurious dynamisch settlings ändern
- 7. Ionic2 Ansicht dynamisch ändern
- 8. Android dynamisch ändern Layoutgröße
- 9. Ändern einer Auswahlliste dynamisch
- 10. dotless Parameter dynamisch ändern
- 11. Dynamisch ändern onclick Methode
- 12. Feldkommentarwert dynamisch ändern
- 13. Isoliertes Oszilloskop dynamisch ändern?
- 14. Ändern Partitionsnamen dynamisch
- 15. Ändern Etikettenhöhe Eigenschaft dynamisch
- 16. Objekteigenschaft dynamisch ändern
- 17. Variablennamen dynamisch ändern
- 18. Javascript-Objekt dynamisch ändern
- 19. Java - Protokollierungsstufe dynamisch ändern
- 20. ändern Bootstrap Fortschrittsbalken dynamisch
- 21. Systemzeit dynamisch ändern win7
- 22. jQuery dynamisch Elementhöhe ändern
- 23. AngularJS - Ausdruck dynamisch ändern
- 24. Highcharts Datenreihentyp dynamisch ändern
- 25. angularjs: Filteroptionen dynamisch ändern
- 26. dynamisch ändern Frühling Bohnen
- 27. HighCharts dynamisch Diagrammtyp ändern
- 28. Text dynamisch ändern
- 29. meine Array dynamisch ändern
- 30. dynamisch Spaltendaten ändern Tables