我已经进行了如下验证,但仅在勾选复选框时才触发。
<!-- 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完成它吗? 我只想验证某个条件是否匹配 目前,每次点击“保存”按钮时都会进行验证。
答案 0 :(得分:34)
改为使用自定义验证器:
<asp:CustomValidator ID="cv1" runat="server"
ErrorMessage="Name is required"
Text="*"
ControlToValidate="TextBox1"
ValidateEmptyText="True"
ClientValidationFunction="validate" />
和脚本(只是选中复选框和文本框值作为示例;您可以使用自定义逻辑):
<script type="text/javascript">
function validate(s,args){
if(document.getElementById("<%= checkboxId.ClientID %>").checked){
args.IsValid = args.Value != '';
}
else{
args.IsValid = true;
}
}
</script>
这将进行客户端验证。如果您还需要服务器验证,请在代码后面添加OnServerValidate
属性和处理程序。 See here for details
答案 1 :(得分:9)
我通过在客户端添加以下javascript轻松解决了这个问题。
ValidatorEnable(document.getElementById("RequiredFieldValidator1"), true); or
ValidatorEnable(document.getElementById("RequiredFieldValidator2"), false);
答案 2 :(得分:0)
您也可以试试这个
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
}
}
答案 3 :(得分:0)
试试这个......
protected void RequiredFieldValidator1_Load(object sender, EventArgs e)
{
if (CheckBox1.Checked == true)
{
RequiredFieldValidator1.Enabled = true;
}
else if (CheckBox1.Checked == false)
{
RequiredFieldValidator1.Enabled = false;
}
}
答案 4 :(得分:0)
您可以从Javascript / jQuery启用/禁用 RequiredFieldValidator 。 根据您的情况,当选中复选框时: - 只需调用javascript函数启用 RequiredFieldValidator ,并在取消选中时禁用RequiredFieldValidator。
对于其他条件,如下拉列表更改,文本框值更改和单选按钮选择更改,您可以分别调用onchange,onblur,onclick和 执行完所需条件后,您可以启用/禁用 RequiredFieldValidator 。
希望这对你有所帮助。