javascript - jQuery 在 IE10 中未触发

标签 javascript jquery internet-explorer-10

$(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 的结构也有问题..所以如果你们中有人知道我应该做什么来调试这个,请回应。提前致谢。

最佳答案

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

这是我用过的 fiddle 。我尝试复制您所显示的内容,用您的 label 替换 span 元素,因为这就是渲染的内容,并删除 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(){
    ...
  });
});

关于javascript - jQuery 在 IE10 中未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19735295/

相关文章:

javascript - 如何将数据从隔离作用域传递到父作用域?

javascript - Excel *.xlsx 文件不再允许我们进行计算和返回结果

javascript - jQuery 错误 : Invalid object initializer

javascript - 菜单动画从顶部功能滑动

JQuery、Kinetic.js 和 MSPointer 事件(如何 addEventListener,或者 on() 会起作用吗?)

internet-explorer - CSS· 过渡和动画在 IE10+ 中不起作用

https - IE10 websocket allowInsecureFromHttps

javascript - 等待动态脚本加载的 JS 类加载

javascript - 无法执行计算数据绑定(bind)

javascript - 延迟文档.write