日历扩展程序条目的Rangevalidator会在safari中出现问题

时间:2010-03-24 13:30:37

标签: asp.net validation safari calendar

我有以下情况:

必须在表单上选择到达和离开日期,通过2个文本框分别添加日历扩展程序。

我验证条目以检查今天之前没有选择日期,并检查出发是否在抵达之后。我使用了rangevalidator和comparevalidator。

在IE浏览器,Firefox和Opera中,它在Safari(在Windows上)运行良好,但是即使对于应该被接受的条目,两个验证器都会关闭。

这让我怀疑日期格式dd / MM / yyyy会给Safari带来麻烦。

(dd / MMMM / yyyy在其他浏览器中也给出了同样的麻烦,可能是由于对UIculture的依赖)

代码是:

<tr>
    <td>
        <asp:TextBox ID="txtArrive" runat="server"></asp:TextBox>
        <cc1:TextBoxWatermarkExtender ID="txtArriveWatermarkExt" runat="server" 
            Enabled="True" TargetControlID="txtArrive" WatermarkText="arrival date">
        </cc1:TextBoxWatermarkExtender>
        <cc1:CalendarExtender ID="ArriveCalendarExt" runat="server" 
            CssClass="MyCalendar" Enabled="True" Format="dd/MM/yyyy" 
            TargetControlID="txtArrive">
        </cc1:CalendarExtender>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ControlToValidate="txtArrive" ErrorMessage="please select arrival date" 
            Text="*" ValidationGroup="date" Display="none"></asp:RequiredFieldValidator>
        <asp:RangeValidator ID="RangeValidator1" runat="server" 
            ErrorMessage="please make sure that your arrival date is later than today and not later than a year from now" 
            ControlToValidate="txtArrive" Type="Date" ValidationGroup="date" Text="*"></asp:RangeValidator>
    </td>
    <td>
        <asp:TextBox ID="txtDepart" runat="server"></asp:TextBox>
        <cc1:TextBoxWatermarkExtender ID="txtDepartWatermarkExt" runat="server" 
            Enabled="True" TargetControlID="txtDepart" WatermarkText="departure date">
        </cc1:TextBoxWatermarkExtender>
        <cc1:CalendarExtender ID="DepartCalendarExt" CssClass="MyCalendar" runat="server" Enabled="True" 
            Format="dd/MM/yyyy" TargetControlID="txtDepart">
        </cc1:CalendarExtender>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
            ControlToValidate="txtDepart" ErrorMessage="Please select departure date" 
            Text="*" ValidationGroup="date"></asp:RequiredFieldValidator>
        <asp:CompareValidator ID="CompareValidator2" runat="server" 
            ControlToCompare="txtDepart" ControlToValidate="txtArrive" 
            ErrorMessage="your departure date has to be later than your arrival date" 
            Operator="LessThan" Type="Date" Text="*" ValidationGroup="date"></asp:CompareValidator>
     </td>
    <td>
        &nbsp;</td>
</tr>

范围验证器在Page_load

后面的代码中获取其值
RangeValidator1.MinimumValue = DateTime.Now.AddDays(1).ToShortDateString();
RangeValidator1.MaximumValue = DateTime.Now.AddMonths(12).ToShortDateString();

有没有人对如何使用safari解决这个问题有任何建议?

1 个答案:

答案 0 :(得分:0)

将格式属性设置为压延扩展器的Format =“dd / MM / yyyy”