Используя блоки проверки допустимости, чтобы гарантировать, что пользователь, заполненный любое из двух обязательных полей

Я имею ASP.NET форма для запросов обмена валюты. Там существует два текстовых поля: источник суммы и цель суммы.

Один из них должен быть переполнен и только один.

Как реализовать это использование Блоки проверки допустимости, если применимо?

5
задан abatishchev 15 May 2012 в 14:13
поделиться

2 ответа

Вы можете использовать пользовательские валидаторы для этого:

<asp:Textbox id="textbox1" runat="server" />
<asp:CustomValidator id="valCustom" runat="server"
    ControlToValidate="textbox1"
    ClientValidationFunction="ClientValidate"
    OnServerValidate="ServerValidate"
    ErrorMessage="*You can only enter 1" display="dynamic">*
</asp:CustomValidator>

<asp:Textbox id="textbox2" runat="server" />
<asp:CustomValidator id="valCustom2" runat="server"
    ControlToValidate="textbox2"
    ClientValidationFunction="ClientValidate"
    OnServerValidate="ServerValidate"
    ErrorMessage="*You can only enter 1" display="dynamic">*
</asp:CustomValidator>

<script language="Javascript">
  function ClientValidate(source, arguments)
  {
    var tb1 = document.getElementById("<%=textbox1.ClientID %>").value;
    var tb2 = document.getElementById("<%=textbox2.ClientID %>").value;
    if (tb1 && tb2 || (!tb1 && !tb2)){
        arguments.IsValid = false;
    } else {
        arguments.IsValid = true;
    }
  }
</script>

Server-Side:

protected void ServerValidate(object sender, ServerValidateEventArgs args)
{
  if(string.isNullOrEmpty(textbox1.Text) && string.isNullOrEmpty(textbox2.Text))
    args.IsValid = false;
  else if(!string.isNullOrEmpty(textbox1.Text) && !string.isNullOrEmpty(textbox2.Text))
    args.IsValid = false;
  else
    args.IsValid = true;
}

Если вы используете jQuery, пожалуйста, прокомментируйте ... Это все может быть намного чище.

14
ответ дан 18 December 2019 в 11:56
поделиться

Я бы реализовал пользовательский Валидатор и украсил им оба TextBox. Если оба заполнены, то оба находятся в состоянии ошибки.

1
ответ дан 18 December 2019 в 11:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: