我有一个用于四个文本输入的.blur()
事件,该事件带有日期选择器和时间选择器。当我"选项卡"到下一个控件时,它工作正常,但当我单击外部某个位置时,事件不会触发。我是做错了什么,还是.blur()
事件有问题?
事件的JavasScript代码:
$(".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å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。
编辑看来活动进展顺利。问题是,当我在日期选择器中单击以选择日期时,已经在日期上按下鼠标,即使输入文本中的组件尚未设置该值,也会触发事件!
现在,我必须找到一种方法,要么获得"鼠标按下"日期,要么将事件延迟到输入文本中实际设置的时间。
我实际遇到的问题是:jqueryUI日期选择器触发输入';s在截止日期前模糊,避免/解决方法?
我使用了Purells答案的变体来解决我的问题。
感谢大家的支持。正是在这个问题上的帮助使我找到了真正的问题。
IE9似乎有问题,模糊事件没有持续触发,请尝试使用focusout绑定元素。