0

我有.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。

编辑 似乎这些事件运行良好。问题是,当我在日期选择器中单击以选择日期时,已经在日期上按下鼠标,事件被触发,即使输入文本中的组件尚未设置该值!

Now, I have to find a way to either get the "mouse down"-date or delay the event to when it's actually set in the input-text.

4

2 回答 2

1

The issue I was actually having was this: jqueryUI datepicker fires input's blur before passing date, avoid/workaround?

I used a variant of Purells answer to solve my problem.

Thanks for all support. It was the help in this question that led me to the real problem.

于 2012-08-29T08:20:25.177 回答
0

There seem to be issues with IE9 and the blur event not firing consistently, try binding the elements with focusout instead.

于 2012-08-28T13:12:20.617 回答