以下是我的代码:
<asp:TextBox
ID="FromDateTextBox"
runat="server" />
<asp:ImageButton
ID="FromDateImageButton"
runat="server"
ImageUrl="~/images/calander.png" />
<ajaxkit:CalendarExtender
ID="FromDate"
runat="server"
TargetControlID="FromDateTextBox"
CssClass="CalanderControl"
PopupButtonID="FromDateImageButton"
Enabled="True" />
<ajaxkit:MaskedEditExtender
id="FromDateMaskedEditExtender"
runat="server"
targetcontrolid="FromDateTextBox"
Mask="99/99/9999"
messagevalidatortip="true"
onfocuscssclass="MaskedEditFocus"
oninvalidcssclass="MaskedEditError"
masktype="Date"
displaymoney="Left"
acceptnegative="Left"
errortooltipenabled="True" />
<ajaxkit:MaskedEditValidator
id="FromDateMaskedEditValidator"
runat="server"
controlextender="FromDateMaskedEditExtender"
controltovalidate="FromDateTextBox"
emptyvaluemessage="Date is required"
invalidvaluemessage="Date is invalid"
display="Dynamic"
tooltipmessage="Input a date"
emptyvalueblurredtext="*"
invalidvalueblurredmessage="*"
validationgroup="MKE" />
我在@Page指令中设置了Culture="auto" UICulture="auto"
,在脚本管理器中设置了EnableScriptGlobalization="true" EnableScriptLocalization="true"
,以便在我的文本框中设置客户端文化特定的日期格式。
我的页面上还有一个Go
按钮,我将在其上进行部分回复。因此,我想在点击FromDateTextBox
按钮时验证javascript中的Go
。
更新
我知道如何创建一个javascript点击处理程序。但是因为蒙面编辑器已经在焦点移位上验证日期,我认为应该有一些布尔属性(比如IsValid),它允许我查看文本框是否包含有效日期。
进一步试验
我也试过下面的代码,Page_Validators[f].isvalid
总是返回true,即使日期无效且MaskEditValidator在文本框附近显示红星。
function isDateValid() {
var b = true;
for (var f = 0; f < Page_Validators.length; f++) {
if (!Page_Validators[f].isvalid)
b = false;
}
return b;
}
$('#GoButton').click(function() {
if (!isDateValid()) {
return false;
}
loadProducts();
});
答案 0 :(得分:0)
对不起你的意思是你的MaskedEditValidator在点击GO按钮时不起作用?或者,如果你想写一些js来自己检查日期?在这种情况下,您可以将客户端onclick事件添加到GO按钮。代码背后的一个例子是:
goButton.Attributes["onclick"] = "if (!CheckDate()) return false;";
并在页面文件中添加一个javascript函数:
function CheckDate()
{
//check the date here
return isValid;
}
现在如果日期无效,CheckDate()将返回false,goButton事件也将返回而不回发。
答案 1 :(得分:0)
我解决了。基本上,当在文本框中输入无效日期时,MaskedEditExtender会更改文本框中提供的(OnInvalidCssClass="MaskedEditError"
)类,并将其作为检查点进行验证。
$('#GoButton').click(function () {
if($('#<%=FromDateTextBox.ClientID%>').hasClass('MaskedEditError')) {
return false;
}
}