Показать "переданное" изображение или текст после проверки валидатора asp.net (поле запроса) - PullRequest
2 голосов
/ 06 августа 2010

У меня есть следующий код asp.net:

<asp:TextBox CssClass="mf" runat="server" ID="mail1" Width="270" />
<asp:RequiredFieldValidator ID="rfv1" 
                            runat="server" 
                            ControlToValidate="mail1" 
                            Display="Dynamic" />

Теперь я хочу показать изображение (или текст), если проверка проходит на лету (без обратной передачи)

Решение jQuery также подойдет мне, но это не будет так безопасно, если отключен JavaScript.

1 Ответ

2 голосов
/ 06 августа 2010

Не полагаясь на внешнюю платформу, вы можете задействовать платформу проверки на стороне клиента ASP.Net для обработки расширенных / расширенных функциональных возможностей. Таким образом, вы работаете со структурой, дополняя ее вместо того, чтобы заменять ее.

Небольшой кусочек JavaScript - это все, что нужно для включения желаемого поведения.

<asp:TextBox CssClass="mf" runat="server" ID="mail1" Width="270" OnChange="showValidationImage();" />
<asp:RequiredFieldValidator ID="rfv1" 
                        runat="server" 
                        ControlToValidate="mail1" ClientIDMode="Static"
                        Display="Dynamic" >
    <img src="../Image/fail.jpg" />
</asp:RequiredFieldValidator>
<img id="imgPass" src="../Image/pass.jpg" style="visibility:hidden" />
<script language="javascript">
    // This function will be called whenever the textbox changes
    // and effectively hide or show the image based on the state of
    // the client side validation.
    function showValidationImage() {
        if (typeof (Page_Validators) == "undefined") return;

        // isvalid is a property that is part of the ASP.Net
        // client side validation framework
        imgPass.style.visibility = rfv1.isvalid ? "visible" : "hidden";
    }
</script>
<br />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" />

Обратите внимание, что я использую функцию ASP.Net 4 с ClientIDMode = "Static", если вы не используете .Net 4, тогда вам нужно будет использовать стандартное <%= rfv1.ClientID %> включение на стороне сервера, чтобы получить идентификатор клиента внутри вашего скрипта.

...