Ich versuche derzeit sicherzustellen, dass eine in ein Textfeld eingegebene Nummer um 1,25 oder 1,5 geteilt ist. Die Art, wie ich mich entscheide, ob die Nummer um 1,25 oder 1,5 geändert werden soll, hängt davon ab, was in einer anderen Dropdown-Liste steht. Zum Beispiel: Wenn der ausgewählte Index einer DDL 1 ist, mod ich um 1,5, wenn es 2 ist, mod um 1,25.ASP.NET - Benutzerdefinierter Validator mit dynamischer ErrorMessage
Allerdings muss ich dem Benutzer anzeigen, warum der Fehler ausgelöst wurde. Die Fehlermeldung des benutzerdefinierten Prüfers muss etwas wie "Nummer muss um 1,25 sichtbar sein" oder umgekehrt sein.
Von dem was ich sagen kann Code sollte funktionieren. Aber das tut es nicht. Ich habe in einem anderen Forum gelesen, dass das Annehmen der Quelle und das Ausführen des inneren Textes Ihre Fehlermeldung tun sollte. Aber ich muss irgendwo etwas falsch machen. Wenn ich durch meine JavaScript-Funktion gehe, geht es perfekt durch. Nur keine Fehlermeldung. Hier ist mein Code:
<asp:CustomValidator ID="ValidateFinHeight" runat="server" CssClass="NormLabel"
Display="Dynamic"
ControlToValidate="txtFinHeight"
ClientValidationFunction="validateFinHeight"></asp:CustomValidator>
<script type="text/javascript" language="javascript" >
function validateFinHeight(source, arguments)
{
var ddl = document.getElementById('cboTubeDia');
var ddlSelIndex = ddl.selectedIndex
switch(ddlSelIndex)
{
case 0:
arguments.isValid = true;
return;
case 1:
if(arguments.value%1.25 != 0)
{
source.innerText = "Height must be divisibly by 1.25";
arguments.isValid = false;
return;
}
else
{
arguments.isValid = true;
return;
}
case 2:
if(arguments.value%1.5 != 0)
{
source.innerText = "Height must be divisibly by 1.5";
arguments.isValid = false;
return;
}
else
{
arguments.isValid = true;
return;
}
}
}
</script>
Sie erwähnen, dass die Zahl 1,25 ist, wenn selectedindex 2 und 1,5 ist, wenn selectedindex 1 ist, aber in Ihrer Javascript-Funktion validieren Sie umgekehrt. Nicht wichtig für die Antwort auf Ihre Frage. –