Asp: Валидация RequiredFieldValidator на основе условий - программирование
Подтвердить что ты не робот

Asp: Валидация RequiredFieldValidator на основе условий

У меня есть подтверждение, как показано ниже, но только для того, чтобы запускаться, если галочка отмечена.

<!-- TextBox and its validator -->
Name: <asp:TextBox ID="TextBox1" runat="server" />

<asp:RequiredFieldValidator runat="server"
        ID="RequiredFieldValidator1" 
        Text="*"
        ErrorMessage="Name is required" 
        ControlToValidate="TextBox1" />

Могу ли я сделать это с помощью asp: RequiredFieldValidator?
Мне просто нравится проверять соответствие определенного условия.
В настоящее время он проверяется каждый раз, когда нажимается кнопка "Сохранить".

4b9b3361

Ответ 1

Я решил это легко, добавив следующий javascript на стороне клиента.

ValidatorEnable(document.getElementById("RequiredFieldValidator1"), true); or
ValidatorEnable(document.getElementById("RequiredFieldValidator2"), false);

Ответ 2

Вместо этого используйте специальный валидатор:

<asp:CustomValidator ID="cv1" runat="server"
        ErrorMessage="Name is required"
        Text="*"
        ControlToValidate="TextBox1"
        ValidateEmptyText="True" 
        ClientValidationFunction="validate" />

и script (просто установите флажок и значение текстового поля в качестве примера, вы можете использовать пользовательскую логику):

<script type="text/javascript">
    function validate(s,args){
        if(document.getElementById("<%= checkboxId.ClientID %>").checked){
            args.IsValid = args.Value != '';

        }
        else{
            args.IsValid = true;
        }
    }
</script>

Это сделает проверку на стороне клиента. Если вам нужна проверка сервера, добавьте атрибут OnServerValidate и обработчик кода. Подробнее см. здесь.

Ответ 3

Вы также можете попробовать этот

protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{

   if(CheckBox.Checked)
   {
       RequiredFieldValidator1.Enabled = true;
       RequiredFieldValidator1.ValidationGroup = "anything";
       Button1.ValidationGroup = "anything";// your save button

   }
   else
   {
       RequiredFieldValidator1.Enabled = false;
       RequiredFieldValidator1.ValidationGroup = string.Empty;
       Button1.ValidationGroup = string.Empty; // save button
   }
}

Ответ 4

Попробуйте это...

protected void RequiredFieldValidator1_Load(object sender, EventArgs e)
{
     if (CheckBox1.Checked == true)
     {
         RequiredFieldValidator1.Enabled = true;
     }
     else if (CheckBox1.Checked == false)
     {
         RequiredFieldValidator1.Enabled = false;
     }
}

Ответ 5

Вы можете включить/отключить RequiredFieldValidator из Javascript/jQuery. Для вашего условия, когда отмечен флажок Checkbox: - Просто вызовите функцию javascript, чтобы включить RequiredFieldValidator, и когда его Uncheck просто отключил RequiredFieldValidator.

Для других условий, таких как изменение индекса раскрывающегося списка, изменение значения текстового поля и изменение выбора переключателя, вы можете вызвать его onchange, onblur, onclick соответственно и После выполнения требуемого условия вы можете Включить/Отключить RequiredFieldValidator.

Надеюсь, что это поможет вам.