Ich frage, ob es möglich ist, das Feld erforderlich unter Bedingung wie: , um ein Textfeld erforderlich, wenn das andere Feld nicht leer ist, andernfalls wird es optional sein.Wie wird das angeforderte Feld abhängig von der Bedingung eingestellt?
Antwort
können Sie einen CustomValidator für diese, aber es gibt Sie etwas brauchen, um zu wissen, dass es zum Laufen zu bringen. Das Problem ist, dass wenn Sie die ControlToValidate
Eigenschaft auf dem Validator festlegen, wird es nur ausgelöst, wenn das Steuerelement einen Wert hat. In Ihrer Situation möchten Sie es speziell überprüfen, wenn es keinen Wert hat.
Um dies zu umgehen, legen Sie die Eigenschaft ControlToValidate
nicht auf dem Validator fest. Dann müssen Sie in Ihren Client- und Server-Validierungshandlern direkt auf beide Textfelder zugreifen.
In Ihrer Validierungsfunktion Client Sie so etwas tun könnte:
:protected void OnCustomServerValidate(object source, ServerValidateEventArgs e)
{
e.IsValid = true;
// Don't validate anything if `OtherTextBox` is empty
if (OtherTxtBox.Text.Trim() == String.Empty)
{
return;
}
// If we got this far then we need to set IsValid to false if the ControlToValidate has no value
if (TextBoxToValidate.Text.Trim() == String.Empty)
{
e.IsValid = false;
}
}
und Ihre aspx könnte so aussehen:
function OnCustomClientValidate(source, e) {
e.IsValid = true;
var otherTextBoxValue = $('#<%=OtherTxtBox.ClientID%>').val().trim();
if (otherTextBoxValue == '') {
return;
}
var controlToValidateValue = $('#<%=TextBoxToValidate.ClientID%>').val().trim();
if (controlToValidateValue == '') {
e.IsValid = false;
}
}
Ihr Server Validierungsmethode könnte wie folgt aussehen
<asp:TextBox ID="OtherTextBox" runat="server"></asp:TextBox>
<asp:CustomValidator ID="MyCustomValidator" runat="server" ClientValidationFunction="OnCustomClientValidate" OnServerValidate="OnCustomServerValidate" Display="Dynamic" ErrorMessage="Please enter a value"></asp:CustomValidator>
<asp:TextBox ID="TextBoxToValidate" runat="server"></asp:TextBox>
Beachten Sie, dass bei Verwendung dieses Ansatzes nicht validiert wird, wenn die (beabsichtigte) Kontrolle t o validiert werden, verliert den Fokus, weil wir diese Kontrolle nicht spezifiziert haben. Daher wird die clientseitige Validierung ausgelöst, wenn Sie das Formular senden, das Postback wird jedoch abgebrochen, wenn die Validierung fehlschlägt.
Eine der Möglichkeiten, eine solche Validierung durchzuführen, wäre die Verwendung eines benutzerdefinierten Validators. Sie können dann den benutzerdefinierten Validator verbinden, um entweder die Validierungsserverseite oder die Clientseite auszuführen.
Mandatory MSDN-Link: How to: Validate with a Custom Function for ASP.NET Server Controls
- 1. Wie wird das Gebietsschemaformat von Datepicker eingestellt?
- 2. Unterschiedliche Reihenfolge der Bedingung abhängig
- 3. Wie definiert man Variable abhängig von der Bedingung in XCode
- 4. ASPxComboBox, Wie wird das ausgewählte Element eingestellt?
- 5. Warum wird ein Feld viel langsamer eingestellt als ein Feld?
- 6. Wie wird das Videoaufnahmezeitlimit im iPhone eingestellt?
- 7. Wie wird der Media Controller über das Video eingestellt?
- 8. Wie wird das korrekte Format von DateTime eingestellt?
- 9. ElasticSearch Build-Abfrage abhängig von einer Bedingung
- 10. Serialisierbares Wörterbuch, wie wird der Schlüsselname eingestellt?
- 11. Wie Feld zu verbergen hängt von der Bedingung odoo ab?
- 12. Wie wird DJANGO_SETTINGS_MODULE in der Produktion eingestellt?
- 13. ein Feld einzigartig machen abhängig von einem anderen Feld
- 14. Wie wird die Seitenkodierung der Mechanize eingestellt?
- 15. Attribut abhängig von einem anderen Feld
- 16. Wie wird die Symbolfarbe von MenuItem eingestellt?
- 17. Wie wird der IE-Dokumentmodus eingestellt?
- 18. Wie wird der Standard-PyCharm-Interpreter eingestellt?
- 19. Wie wird der dynamische Dateiname eingestellt?
- 20. Wie wird der ViewBox-Hintergrund eingestellt?
- 21. Ändern der Zeilenquelle einer Suche abhängig von einem anderen Feld
- 22. Wie wird der Listener eingestellt, wenn das Programm angehalten wird (der Benutzer verlässt die App)?
- 23. Wie wird das ACF-Feld außerhalb der Metabox angezeigt?
- 24. Wie SQL-Abfrage abhängig von Feld in Zeile?
- 25. Wie wird die Erinnerung eingestellt?
- 26. Android RecyclerView passiert und Anzeigepositionsdaten unter der Bedingung abhängig
- 27. So erhalten Sie Gruppen von Elementen abhängig von einer Bedingung
- 28. In einem Histogramm-Diagramm (gruppiert), Wie wird vertikaler Text an Stelle von einigen Balken gesetzt, abhängig von der Bedingung?
- 29. Wie wird der Bildanzeigeort in der ipython/jupyter Notebookzelle eingestellt?
- 30. andere Seite direkt abhängig davon, ob das Feld leer ist
Vielen Dank Ihr Vorschlag ist hilfreich :) –