填写字段问题的javascript onchange

时间:2013-12-24 06:22:05

标签: javascript onchange

我想在文本字段上使用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}}时,它不起作用。

3 个答案:

答案 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}} !!!正如你所看到的那样,这不是我想要的,但只是在每次填充后捕捉现场价值的临时方法。