或者应该是这样,关键是:如果它将告诉您,将当前字段保持为空是无效的,那么您可以完成其他字段,可能会忘记这个字段。
点被清除了。
现在,说我想取消整个交易,我根本不会填写这张表格!
幸运的是,有一个“取消”图像按钮
这隐藏了form,,但它也禁用了。
除了假装要填写表单,然后在invalidEmpty-Error清除后立即单击cancel之外,还有其他工作吗?
MaskedEditExtender
<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
<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从后面的代码中将其转换为启用按钮事件。
insertDate_MskValidator.Enabled = true;第1阶段-
启用验证器= false
形式被隐藏
第二阶段-
启用验证器=真+可见窗体
第三阶段-
取消或提交
如果表单有效,提交将执行。如果您在文本框中的某个位置执行“取消”选项,则无法选择取消。
你能想到什么吗?
发布于 2012-10-11 01:10:39
我找到了一种了不起的方法(所以我想!)为了绕过它,您现在可以使用验证属性- isValidEmpty=false (当前字段是必需字段)。
但是,即使默认情况下表单不可用,但在字段为空时,仍然可以取消窗体。
修正了以下问题:当离开一个空字段时,导致周围的控件被禁用。
我所需要做的就是当onblur事件触发验证时
我将一个函数绑定到target textbox onblur(),该函数执行一个执行延迟的setTimeOut函数,以禁用Validator,如下所示:
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上也不是(但是.)因此,我认为这段代码可以重构/优化,这样它就更优雅了,并且可以接受任何作为参数的控件。
发布于 2014-04-29 17:05:54
<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>https://stackoverflow.com/questions/12829849
复制相似问题