3
$(document).ready(function () {
    $('#ctl00_ContentPlaceHolder1_btnDisplayReport').click(function () {
        if ((new Date($('#ctl00_ContentPlaceHolder1_txtStartDateFrom').val()) > new Date($('#ctl00_ContentPlaceHolder1_txtStartDateTo').val())) && $('#ctl00_ContentPlaceHolder1_txtStartDateTo').val() != "") {
            alert("Start date cannot be greater than end date.");
            return false;
        }

        if (new Date(($('#ctl00_ContentPlaceHolder1_txtCompletionDateFrom').val()) > new Date($('#ctl00_ContentPlaceHolder1_txtCompletionDateTo').val())) && $('#ctl00_ContentPlaceHolder1_txtCompletionDateTo').val() != "") {
            alert("Completion start date cannot be greater than completion end date.");
            return false;
        }
    });

    $('.dateverification>input').each(function () {
        $(this).change(function () {
            temp = $(this).attr("id");
            temp = temp.replace("txt", "lbl");
            if ($(this).val()) {
                $('#' + temp).show();
            }
        });

        $('.xlink').click(function () {
            temp1 = $(this).attr("id");
            temp1 = temp1.replace("lbl", "txt");
            $('#' + temp1).val("");
            temp1 = temp1.replace("txt", "lbl");
            $('#' + temp1).hide();
        });
    });
});

这是一个 jQuery 函数,它在 FF 和 Chrome 中完美运行,但在 IE10 中无法触发,并且无法运行的部分开始于$('.dateverification>input').each(function()...我没有使用开发工具或我应该注意的东西捕获任何 javascript 错误。基本上,我遗漏了一些东西,我无法让它适用于所有浏览器。(在我的代码文件中也做了一个无缓存请求)

<tr>
    <td style="width: 25%;">
        <%= this.GetGlobalResourceObject("CourseCompletionReport.aspx", "Reports.CourseCompletionReport.StartDateFrom") %>
    </td>
    <td class="dateverification" style="width: 75%;">
        <asp:TextBox ID="txtStartDateFrom" runat="server" SkinID="TextBoxNoneMandatory" autocomplete="off" contentEditable="false"></asp:TextBox>
        <ajaxToolkit:CalendarExtender ID="defaultCalendarExtender1" Format="MMMM dd, yyyy" runat="server" TargetControlID="txtStartDateFrom" />
        <asp:Label ID="lblStartDateFrom" runat="server" Text="x" class="xlink" ></asp:Label>
    </td>
</tr>

这是部分之一 - 文本框 + ajax 日历 + 标签,如果 html 的结构也有问题。所以如果你们中的任何人知道我应该怎么做来调试这个,请回复。提前致谢。

4

1 回答 1

0

我会假设 IE 10 中的任何问题都会转移到 IE 11 中。我正在运行 IE 11,并且根据您提供的脚本和结构,它似乎对我有用。

这是我用过的小提琴。我试图复制你所展示的内容,span用你的替换一个元素,label因为这将被渲染并删除CalendarExtender,我认为这无论如何都不重要。

http://jsfiddle.net/Sn7p8/9/

您确定您的选择器正在获取您期望的元素吗?

作为旁注,这里是存储jquery对象的一种常见做法的示例

var Members = 
{
  btnDisplayReport: $('#' + <%= btnDisplayReport.ClientID %>),
  txtStartDateFrom: $('#' + <%= txtStartDateFrom.ClientID %>),
  txtStartDateTo: $('#' + <%= txtStartDateTo.ClientID %>),
  txtCompletionDateFrom: $('#' + <%= txtCompletionDateFrom.ClientID %>)
}

然后,您可以使用 Members 对象来访问元素

$(document).ready(function(){
  Members.btnDisplayReport.click(function(){
    ...
  });
});
于 2013-11-07T08:04:20.180 回答