2013-11-27 137 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); 
... 
相關問題