2011-03-18 138 views

回答

1

你報什麼會像這樣使用Prototype的事件東西:

var input = /* ...get the `input` element, how will depend on your structure... */; 
input.observe('keypress', function(event) { 
    if (event.keyCode == 13) { 
     event.stop(); 
    } 
}); 

Event#stop做兩件事情:它可以防止默認操作,如果有的話,它停止事件冒泡。如果你只是想阻止默認動作而不是冒泡動作,可以使用Event#preventDefault來代替(Prototype會確保它在那裏,即使在瀏覽器上它也不會關閉)。如果您只想停止冒泡但不阻止默認操作,請改用Event#stopPropagation(同樣,Prototype將確保它在那裏)。


在尋找input元素計:如果它有一個id,很簡單:

var input = $('theId'); 

或者,你可以,或者通過它的其他屬性,使用$$通過它在哪裏找到它,它提供了相當強大的選擇器(大部分是CSS3)。

+0

雖然處理程序確實按下輸入時觸發,IE9仍然dings – c0dem4gnetic 2011-03-18 09:07:44

+0

@ c0dem4gnetic:恐怕我不知道你是什麼意思。以上回答了您如何使用Prototype編寫帶引號的代碼的問題。它是否做到了你想要做的事情完全是另一個問題。 :-) – 2011-03-18 09:13:20

+0

注意到這是Prototype 1.6 + IE9的問題。升級到1.7並根據您的答案處理事件完美無缺。 – c0dem4gnetic 2011-03-18 10:37:02