如何在字段更改时触发事件处理程序

How to trigger an event handler upon change of the field?

本文关键字:事件处理 程序 字段      更新时间:2023-11-02

现在我有这个:

Event.observe(
        'hidden', 
        'keydown', 
        itemOptions["_something"].showButtonsForThat
    );

而CCD_ 1是CCD_。

但我需要添加其他事件处理程序:

 Event.observe(
        'inputF',
        'keydown',
        function() { document.getElementById('hidden').value = document.getElementById('inputF').value; }
    );
Event.observe(
        'inputF',
        'blur',
        function() { document.getElementById('hidden').value = document.getElementById('inputF').value; }
    );

每当我改变CCD_ 4字段中的某些内容时。现在,我希望第一个事件处理程序(关于hidden元素)在其值更改时触发(根据input字段中的内容而更改)。

我尝试使用eventName 'change',但没有成功。不知怎么的,在html元素+jQuery等中使用onchange="myFoo();"都不起作用。也许我的语法错误,但我尝试了很多东西,并遵循了不同的例子。

澄清:我想观察hidden的变化,因为当我在showButtonsForThat0中键入不同的内容时,它会自动变化。所以我基本上不会和hidden互动。

如果传统方法都不适用,您可以简单地使用变通方法,如下所示:

Event.observe(
        'inputF', 
        'keyup', 
        itemOptions["_something"].showButtonsForThat
    );

这意味着您仍将观察inputF字段,但将调用该字段所需的函数。无论如何,您将在更改hidden时调用处理程序,另一方面,CCD_13会随inputF一起更改,这意味着更改任何一个字段都会同时发生,并且目的相同。

附言:最好使用keyup事件名称(如我的示例),因为keydown需要再单击一次才能更新最后一个符号。也就是说,如果在inputF中键入asde,那么在hidden中就会有asd。有了keyup,你就不会有这个问题了。

var h = document.getElementById('hidden'), 
    f = function() { h.value = this.value; };
Event.observe('inputF','keydown', f);
Event.observe('inputF','blur', f);
...