我想在文本字段上使用onchange()
事件,该字段可能由使用javascript的日期选择器填充。我尝试使用onblur()
,onmouseover()
等等,但是不使用它们可以帮助我在更改日期选择器之后捕获其值。
定义日期选择器和填写文本字段的代码的一部分如下所示:
<script type="text/javascript" src="Scripts/cal_.js"></script>
<input type="text" name="receive_date" id="receive_date" style="width:75px" class="cdate" value="" {{attributes}}>
<script type="text/javascript">
new LCalendar('receive_date');
</script>
但是当我想添加onchange="_do_something()"
代替{{attributes}}
时,它不起作用。
答案 0 :(得分:0)
文本输入没有更改事件。您可以用来获取输入更改的事件是使用“输入”。见样本
inputVar.addEventListener('input', function(){'what you want to do.'});
答案 1 :(得分:0)
这很简单,但你可以试试这个:
var val;
document.getElementById('receive_date').addEventListener('focus', function() {
// set the value
val = this.value;
});
document.getElementById('receive_date').addEventListener('blur', function() {
if (this.value !== val) {
// val was changed
} else {
// val was not changed
}
});
答案 2 :(得分:0)
感谢您的回答。 在测试了这么多解决方案后,我改变了日历库代码。 在填写代码中的日期(文本)字段之后:
receive_date_field.value=...;
我试着说:
a.focus();
a.blur();
两次,并且在每次填充后(或者通过另一个javascript代码)捕获它的值我用过:
onfocus="_do_something();"
取代{{attributes}}
!!!正如你所看到的那样,这不是我想要的,但只是在每次填充后捕捉现场价值的临时方法。