首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ajax MaskedEditValidator isValidEmpty禁用所有all控件。

ajax MaskedEditValidator isValidEmpty禁用所有all控件。
EN

Stack Overflow用户
提问于 2012-10-10 23:10:53
回答 2查看 3.3K关注 0票数 0

或者应该是这样,关键是:如果它将告诉您,将当前字段保持为空是无效的,那么您可以完成其他字段,可能会忘记这个字段。

点被清除了。

现在,说我想取消整个交易,我根本不会填写这张表格!

幸运的是,有一个“取消”图像按钮

这隐藏了form,但它也禁用了

除了假装要填写表单,然后在invalidEmpty-Error清除后立即单击cancel之外,还有其他工作吗?

MaskedEditExtender

代码语言:javascript
复制
<cc1:MaskedEditExtender enabled="true" MaskType="Date" ID="insertDate_MaskedEditExtender" runat="server"
    TargetControlID="TBXinsertDate"  InputDirection="LeftToRight"  CultureName="en-GB" 
    UserDateFormat="None" Mask="99/99/9999" MessageValidatorTip="true"  OnFocusCssClass="maskedFocus" ErrorTooltipEnabled="true" ErrorTooltipCssClass="toolTipForInvalid"
</cc1:MaskedEditExtender>

MaskedEditValidator

代码语言:javascript
复制
<cc1:MaskedEditValidator Enabled="false" IsValidEmpty="false" ID="insertDate_MskValidator"  ControlExtender="insertDate_MaskedEditExtender" ControlToValidate="TBXinsertDate" runat="server"
    InvalidValueBlurredMessage="invalid date" EmptyValueBlurredText="requierd fileld"  ErrorMessage="Error" 
    MaximumValue="01/01/2015" MinimumValue="01/01/2008" MinimumValueBlurredText="please enter year above 2008" MaximumValueBlurredMessage="max year value is 2015" 
    CssClass="dateInValid">
</cc1:MaskedEditValidator>

验证器Enabled = false的默认状态,因为我要通过onClick从后面的代码中将其转换为启用按钮事件。

代码语言:javascript
复制
  insertDate_MskValidator.Enabled = true;

第1阶段-

启用验证器= false

形式被隐藏

第二阶段-

启用验证器=真+可见窗体

第三阶段-

取消或提交

如果表单有效,提交将执行。如果您在文本框中的某个位置执行“取消”选项,则无法选择取消。

你能想到什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-11 01:10:39

我找到了一种了不起的方法(所以我想!)为了绕过它,您现在可以使用验证属性- isValidEmpty=false (当前字段是必需字段)。

但是,即使默认情况下表单不可用,但在字段为空时,仍然可以取消窗体。

修正了以下问题:当离开一个空字段时,导致周围的控件被禁用。

我所需要做的就是当onblur事件触发验证时

我将一个函数绑定到target textbox onblur(),该函数执行一个执行延迟的setTimeOut函数,以禁用Validator,如下所示:

代码语言:javascript
复制
   function setTDisableValidation() {
        setTimeout('disableValidation()', 3500);
    }

    function disableValidation() {
        var myVal = document.getElementById('insertDate_MskValidator');
        myVal.disabled = true;
        myVal.ValidEmpty = true;

    }

            <asp:TextBox ID="TBXinsertDate" runat="server" ToolTip="insert date" Width="76px" onblur="setTDisableValidation();">
                    </asp:TextBox>

我不是javascript专家,甚至在asp.net上也不是(但是.)因此,我认为这段代码可以重构/优化,这样它就更优雅了,并且可以接受任何作为参数的控件。

票数 0
EN

Stack Overflow用户

发布于 2014-04-29 17:05:54

代码语言:javascript
复制
<asp:TextBox ID="tbEffectiveTo" runat="server" Text='<%# Bind("EffectiveTo", "{0:MM/dd/yyyy}")%>' Width="8em" ToolTip="MM/DD/YYYY"></asp:TextBox>
<ajaxToolkit:MaskedEditExtender ID="meeEffectiveTo" runat="server" TargetControlID="tbEffectiveTo" Mask="99C99C9999" MessageValidatorTip="true" OnFocusCssClass="MaskedEditFocus"  OnInvalidCssClass="MaskedEditError" MaskType="None" ClearMaskOnLostFocus="false" Filtered="/" PromptCharacter=" " />
<ajaxToolkit:MaskedEditValidator ID="mevEffectiveTo" runat="server" ControlExtender="meeEffectiveTo" ControlToValidate="tbEffectiveTo" Display="Dynamic" IsValidEmpty="true" ValidationExpression="^\s{10}|(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])/(20\d\d)$" InvalidValueMessage="Invalid Date"></ajaxToolkit:MaskedEditValidator>
<ajaxToolkit:CalendarExtender ID="ceEffectiveTo" runat="server" Enabled="True" TargetControlID="tbEffectiveTo" CssClass="EffectiveDateCalendar" Format="MM/dd/yyyy"></ajaxToolkit:CalendarExtender>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12829849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档