2013-11-27 140 views
0

现在我有这样的:如何在更改字段时触发事件处理程序?

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

showButtonsForThatshowButtonsForThat : function(){....function body....}

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

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; } 
    ); 

将每一次改变hidden字段的值更改在input领域的东西。现在我想的第一个事件处理程序(约hidden元素)来触发,只要它的值被改变(据无论是在input场从而改变..

我试图与eventName的'change',但不成功。不知怎的,使用onchange="myFoo();"在html元素+ jQuery的,等等,没有工作,也许我的语法错误的错位,但我试过很多东西,以下不同的例子

澄清:。我要观察的hidden的变化,因为它会当我在inputF中输入不同的东西时自动改变,所以我基本不会与hidden

+0

你想观察对'hidden'或'inputF'的改变吗? – Machavity

+0

@Machavity - 我想观察“隐藏”的变化,因为当我在'inputF'中键入不同的内容时它会自动更改。所以我基本上不会与'hidden'进行交互。 – Syspect

回答

1

如果没有传统的方式为你工作,你可以简单地用一个变通办法,波纹管:

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

这意味着,你仍然会观察inputF领域,但会打电话给你需要的功能在那。无论如何,你将调用处理程序上的hidden变化,这与inputF沿着另一方面的变化,这意味着,在更改域的同时,并为同一目的发生。

P.S.更好地使用keyup事件名称(如我的示例),因为​​需要再次点击一次,才能更新最后一个符号。也就是说,如果你输入asde in inputF,那么你将有asdhidden,除非你用键盘再次点击。与keyup你不会有这个问题。

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