2011-08-22 29 views
0

如何讓用戶點擊輸入時觸發表單,但僅當該字段處於焦點時才能觸發表單?這是我現在所擁有的,但按下輸入任何地方(顯然)觸發形式。將jquery keybind隔離爲單個焦點元素

jQuery(window).bind('keypress', function(e){ 
    if (e.keyCode == 13) { 
    jQuery("#goform").click(); 
    e.preventDefault(); 
    } 
}); 
+0

好吧,試試'的jQuery( '#elementID') .bind'? – Konerak

回答

3

嘗試把.bind的元素,而不是整個窗口:

jQuery('#elementID').bind('keypress', function(e){ 
    if (e.keyCode == 13) { 
    jQuery("#goform").click(); 
    e.preventDefault(); 
    } 
}); 

如果您的欄ID elementID。您可以通過名稱,標記名或使用任何其他jQuery Selector來進入該字段。的jQuery(window)

0

使用jQuery('#{insert-your-form-field-id}')代替您chould使用選擇器選擇窗體元件和keypress()方法分配給該對象:

$('#idOfFormInputElement').keypress(
    function(e){ 
     e.preventDefault(); 
     e.stopPropagation(); 
     if (e.keyCode == 13) { 
      $(this).closest('form').submit(); 
     } 
    }); 

如果是動態添加的元素,然後delegate()可能是用來代替:

$('#idOfFormElement').delegate('#idOfFormInputElement', 'keypress', 
    function(e){ 
     e.preventDefault(); 
     e.stopPropagation(); 
     if (e.keyCode == 13) { 
      $(this).closest('form').submit(); 
     } 
    }); 
1