2010-05-19 73 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