как остановить серию валидаторов в группе проверки, чтобы прекратить срабатывание при ошибке? asp.net

в текстовом поле есть 3 валидатора,

asp:RegularExpressionValidator asp:RangeValidator asp:CompareValidator

какой-то ввод вызовет все 3 из них, как я могу остановить запуск остальных при какой-либо ошибке?


person Li Tian Gong    schedule 09.05.2012    source источник
comment
Можете ли вы показать код. что вы пробовали и каков фактический контекст   -  person Shoaib Shaikh    schedule 09.05.2012
comment
Я перенес валидацию на серверную часть, это единственный способ   -  person Li Tian Gong    schedule 16.05.2012


Ответы (1)


Может быть, это может вам помочь. Вы можете перехватить метод ValidatorValidate среды проверки ASP.Net и выборочно отключить нужные элементы управления валидацией на основе любого заданного результата контроля проверки.

<asp:TextBox ID="tbText" runat="server"></asp:TextBox>

<asp:RegularExpressionValidator EnableClientScript="true" ValidationExpression="\d" ID="rang" runat="server" ControlToValidate="tbText" >sdfsdfsdfsdfsdfsd</asp:RegularExpressionValidator>
<asp:RangeValidator EnableClientScript="true" Type="Date" MinimumValue="10/10/2000" MaximumValue="10/10/2013" runat="server" ID="rang2" ControlToValidate="tbText" >23444444444444</asp:RangeValidator>
<asp:Button ID="btn" runat="server" Text="submit"/>



<script language="javascript">
    var oldValidatorValidate = ValidatorValidate;
    function MyValidatorValidate(val, validationGroup, event) {



        //first call the original one
        oldValidatorValidate(val, validationGroup, event);

        //Here you can check val.isvalid - e.g write your logic here, like check for the correct validator etc etc
        //alert(val.id + ":" + val.isvalid);
        if (!val.isvalid) {
            var myVal = document.getElementById('<%=rang2.ClientID %>');
            //ValidatorEnable(myVal, false);
        }





    }
    ValidatorValidate = MyValidatorValidate;
</script>
person Shoaib Shaikh    schedule 16.05.2012