现在我有这个:
Event.observe(
'hidden',
'keydown',
itemOptions["_something"].showButtonsForThat
);
而showButtonsForThat
是showButtonsForThat : 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'
但未成功。不知何故在html元素+ jQuery等中使用onchange="myFoo();"
不起作用。也许我的语法错位错误,但我尝试了很多东西并遵循不同的例子。
澄清:我想观察hidden
的变化,因为当我在inputF
输入不同内容时,它会自动更改。所以我基本上不会与hidden
进行互动。
答案 0 :(得分:1)
如果没有一种传统方式适合您,您可以简单地使用解决方法,如下所示:
Event.observe(
'inputF',
'keyup',
itemOptions["_something"].showButtonsForThat
);
这意味着您仍会观察inputF
字段,但会在此处调用您需要的功能。无论如何,你将在更改hidden
时调用处理程序,另一方面,它会随inputF
一起更改,这意味着更改任一字段同时发生并出于同一目的。
P.S。更好地使用keyup
事件名称(如我的示例所示),因为keydown
需要再单击一次,以便更新最后一个符号。即,如果您在inputF
中输入 asde ,则hidden
中将包含 asd ,除非您使用键盘再次单击。使用keyup
,您将不会遇到此问题。
答案 1 :(得分:1)
var h = document.getElementById('hidden'),
f = function() { h.value = this.value; };
Event.observe('inputF','keydown', f);
Event.observe('inputF','blur', f);
...