2010-05-19 39 views
0

下面是我的代码:检查用MaskedEditExtender扩展的文本框的值是否有效?

<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按钮,我将在该页面上进行部分回发。所以,我想在单击Go按钮时在JavaScript中验证FromDateTextBox

UPDATE

我知道如何创建一个JavaScript单击处理。但是,因为蒙面编辑器已经验证了焦点转换的日期,所以我认为应该有一个布尔属性(如IsValid)暴露出来,这将允许我看看文本框是否包含有效的日期。

进一步的试验

我也尝试下面的代码,甚至当日期是无效的Page_Validators[f].isvalid总是返回真,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

我解决了它。基本上,当在文本框中输入无效日期时,MaskedEditExtender会更改所提供的(OnInvalidCssClass="MaskedEditError")文本框的类,并将其作为验证的检查点。

$('#GoButton').click(function() { 
    if($('#<%=FromDateTextBox.ClientID%>').hasClass('MaskedEditError')) { 
    return false; 
    } 
} 
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事件也将返回而不回发。

+0

哦!对不起。 我知道如何创建一个JavaScript点击处理程序。但是因为蒙面编辑器已经验证了焦点转换的日期,所以我认为应该有一个布尔属性(如IsValid)暴露出来,这将允许我看看文本框是否包含有效日期。 – IsmailS 2010-05-19 05:54:07

+0

如果你的maskedValidator工作正常,如果IsValid = false,单击GO将不会导致回发; – 2010-05-19 06:01:54

+0

IsValid是哪个控件的属性? – IsmailS 2010-05-19 06:10:52