Ответ 1
Я решил это легко, добавив следующий javascript на стороне клиента.
ValidatorEnable(document.getElementById("RequiredFieldValidator1"), true); or
ValidatorEnable(document.getElementById("RequiredFieldValidator2"), false);
У меня есть подтверждение, как показано ниже, но только для того, чтобы запускаться, если галочка отмечена.
<!-- 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?
Мне просто нравится проверять соответствие определенного условия.
В настоящее время он проверяется каждый раз, когда нажимается кнопка "Сохранить".
Я решил это легко, добавив следующий javascript на стороне клиента.
ValidatorEnable(document.getElementById("RequiredFieldValidator1"), true); or
ValidatorEnable(document.getElementById("RequiredFieldValidator2"), false);
Вместо этого используйте специальный валидатор:
<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
и обработчик кода. Подробнее см. здесь.
Вы также можете попробовать этот
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
}
}
Попробуйте это...
protected void RequiredFieldValidator1_Load(object sender, EventArgs e)
{
if (CheckBox1.Checked == true)
{
RequiredFieldValidator1.Enabled = true;
}
else if (CheckBox1.Checked == false)
{
RequiredFieldValidator1.Enabled = false;
}
}
Вы можете включить/отключить RequiredFieldValidator из Javascript/jQuery. Для вашего условия, когда отмечен флажок Checkbox: - Просто вызовите функцию javascript, чтобы включить RequiredFieldValidator, и когда его Uncheck просто отключил RequiredFieldValidator.
Для других условий, таких как изменение индекса раскрывающегося списка, изменение значения текстового поля и изменение выбора переключателя, вы можете вызвать его onchange, onblur, onclick соответственно и После выполнения требуемого условия вы можете Включить/Отключить RequiredFieldValidator.
Надеюсь, что это поможет вам.