单击外部datepicker时不会触发.blur()

时间:2012-08-28 12:59:20

标签: javascript jquery internet-explorer-9 onblur

我有四个文本输入的.blur()事件,它附有datepicker和timepicker。当我“选项卡”到下一个控件时,它工作正常,但当我点击外面的某个地方时,事件不会触发。我做错了什么,或者.blur()事件有问题吗?

JavasSript活动代码:

    $(".calcTimespan").blur(function () {
        $.ajax({
            type: "GET",
            url: '@Url.Action("CalculateTimespan")',
            data: {
                "franDatum": $("#Dyk_FranDatum").val(),
                "franTid": $("#Dyk_FranTid").val(),
                "tillDatum": $("#Dyk_TillDatum").val(),
                "tillTid": $("#Dyk_TillTid").val()
            },
            dataType: 'html',
            cache: false,
            success: function (data) {
                if (data != "FAIL")
                    $("#Dyk_DyktidMinuter").val(data);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert("Ett fel inträffade vid hämtning av dykning!");
            }
        });
    });

HTML:

    <div>
        <label for="Fr_n_datum">Fr&#229;n datum</label>
        <label style="margin-left: 40px;">Tid</label>
        <br />
        <input class="halv datumpicker calcTimespan" id="Dyk_FranDatum" name="Dyk.FranDatum" type="text" value="" />
        <input class="halv tidpicker calcTimespan" id="Dyk_FranTid" name="Dyk.FranTid" type="text" value="" />
    </div>
    <br />

    <div>
        <label for="Till_datum">Till datum</label>
        <label style="margin-left: 50px;">Tid</label>
        <br />
        <input class="halv datumpicker calcTimespan" id="Dyk_TillDatum" name="Dyk.TillDatum" type="text" value="" />
        <input class="halv tidpicker calcTimespan" id="Dyk_TillTid" name="Dyk.TillTid" type="text" value="" />
    </div>
    <br />

    <div>
        <label for="Dyktim__min_">Dyktim (min)</label>
        <label style="margin-left: 33px;">Pris per minut</label>
        <br />
        <input class="halv" id="Dyk_DyktidMinuter" name="Dyk_DyktidMinuter" type="text" value="" />
        <input class="halv" id="Dyk_Pris" name="Dyk.Pris" type="text" value="" />
    </div>

我的目标只是IE9。

修改 似乎事件正常。问题是,当我点击日期选择器来选择日期时,已经在日期的鼠标按下,事件被触发,即使输入文本中的组件尚未设置该值!

现在,我必须找到一种方法来获取“鼠标按下”日期或将事件延迟到实际在输入文本中设置的时间。

2 个答案:

答案 0 :(得分:1)

我实际遇到的问题是:jqueryUI datepicker fires input's blur before passing date, avoid/workaround?

我使用了Purells的一个变种来解决我的问题。

感谢所有支持。这个问题的帮助使我找到了真正的问题。

答案 1 :(得分:0)

IE9似乎存在问题,并且模糊事件没有一致地触发,请尝试使用focusout绑定元素。