2010-05-19 2 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" /> 

Я установил Culture="auto" UICulture="auto" в директиве @Page и EnableScriptGlobalization="true" EnableScriptLocalization="true" менеджер сценариев, чтобы клиент культуры определенный формат даты в моем текстовом поле.

У меня также есть кнопка Go на моей странице, на которой я сделаю частичный пост. Итак, я хочу проверить FromDateTextBox в javascript при нажатии кнопки Go.

UPDATE

Я знаю, как создать яваскрипт обработчик щелчка. Но поскольку маскированный редактор уже проверяет дату сдвига фокуса, я думаю, что должно быть какое-то логическое свойство (например, 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 event к кнопке GO. Одним из примеров в коде является:

goButton.Attributes["onclick"] = "if (!CheckDate()) return false;"; 

И в страничном файле добавить яваскрипт функции:

function CheckDate() 
{ 
    //check the date here 
    return isValid; 
} 

Теперь, если дата не является действительным, то CheckDate() возвращает ложь, событие goButton также вернется без отправки.

+0

Oh! Прости. Я знаю, как создать обработчик javascript. Но поскольку маскированный редактор уже проверяет дату сдвига фокуса, я думал, что должно быть какое-то логическое свойство (например, IsValid), которое будет отображаться в нем, что позволит мне увидеть, содержит ли текстовое поле допустимую дату. – IsmailS

+0

Если ваш maskedValidator работает нормально, нажатие GO не приведет к возврату сообщения, если IsValid = false; –

+0

IsValid - это свойство управления? – IsmailS

Смежные вопросы