没有TextBox焦点的ASP.NET TextBox验证

时间:2016-06-14 07:37:47

标签: javascript c# asp.net textbox

我有一个文本框,一个datetimepicker(第三方组件)和一个requiredvalidator(用于datetimepicker)。我想验证用户是否填写文本框(长度> 0),然后启用requiredvalidator为true,但如果用户未填写文本框或文本框为空,则启用requiredvalidator为false。

问题是当用户输入编辑表单(数据填写服务器端)并且文本框不为空但datetimepicker为null / empty(迁移前的旧数据)时,javascript验证不起作用,除了我单击文本框(焦点) )并单击“保存”按钮。

这是我的TextBox

<asp:TextBox ID="TxtS" runat="server" BorderColor="#999999" BorderStyle="Solid" CausesValidation="true" BorderWidth="1px" Width="170px" OnBlur="ValidatorEnabledDisabled(this.value);" onchange="ValidatorEnabledDisabled(this.value);"></asp:TextBox>

<dxe:ASPxDateEdit ID="DateEditExpiredDate" runat="server" Width="174px" CssClass="TextFlat" CssFilePath="~/App_Themes/Office2003 Silver/{0}/styles.css" CssPostfix="Office2003_Silver" ImageFolder="~/App_Themes/Office2003 Silver/{0}/" EditFormatString="dd/MMM/yyyy" EditFormat="Custom"></dxe:ASPxDateEdit>

<asp:RequiredFieldValidator runat="server" ID="rfvDateEditExpiredDate" ControlToValidate="DateEditExpiredDate" Display="Dynamic" ErrorMessage="Ex expired date is required" Enabled="false"></asp:RequiredFieldValidator>

    <script type="text/javascript">
    function ValidatorEnabledDisabled(value) {
            if (value !== null && value !== undefined) {
                var Exp = document.getElementById('<%=rfvDateExpiredDate.ClientID%>');

                if (value.length > 0) {
                    Exp.enabled = true;
                } else {
                    Exp.enabled = false;
                }
            }
        }
    </script>

是否有其他解决方案没有使用OnClientClick事件?

有人能帮帮我吗?

0 个答案:

没有答案