2010-06-28 70 views
3

我想知道如何在按回車鍵時啓動javacsript函數。我正在嘗試創建一個名爲handleEnter(event, fn)的函數。如何在按回車鍵時調用js函數

我想使用的功能,在輸入欄上例如:

onkeypress="return handleEnter(event, update_field(this)); 
+0

我想我已經解決了這個問題。 – Rapidz 2010-06-30 10:37:06

回答

6

爲了您的函數調用onkeypress事件,檢查事件的.keyCode或價值。其中,看看它是否等於13

function handleEnter(e, func){ 
    if (e.keyCode == 13 || e.which == 13) 
     //Enter was pressed, handle it here 
} 

IIRC,IE使用event.which,Firefox將使用e.keyCode來查看哪個鍵被按下。

+4

我相信鍵碼是13而不是8? – 2010-06-28 18:12:57

+0

你說得對,8是退格。固定。 – Michal 2010-06-28 18:28:03

+0

您不能在JavaScript中使用'function'作爲參數名稱或變量名稱。 – 2010-06-29 09:36:40

1

我想我已經解決了它。

在輸入字段我有:

<input onkeypress="return handleEnter(event, update_field, this, 'task');" type="text" /> 

對於我的功能我有:

function handleEnter(e, callback, obj, field){ 

    if(e){ 
     e = e 
    } else { 
     e = window.event 
    } 

    if(e.which){ 
    var keycode = e.which 
    } else { 
    var keycode = e.keyCode 
    } 


    if(keycode == 13) { 
     var tstid = $(obj).parent().find('input[type=hidden]').val(); 
     callback.apply(this, [field, $(obj).val(), tstid ]); 
    } 
} 

,它似乎是現在的工作很好。