2013-07-16 14 views
8

ho il seguente che funziona:Come innescare Inserisci evento con jQuery

$('textarea').keypress(function(e) { 
    if (e.keyCode == '13') { 
     alert('code'); 
    } 
}); 

Ma voglio innescare la stessa cosa quando la pagina viene caricata, ho provato quanto segue ma non funziona:

var e = jQuery.Event("keypress"); 
e.which = 13; // Enter 
$('textarea').trigger(e); 

NOTA: Voglio avere il primo frammento di codice lì, NON voglio rimuoverlo.

+0

Si dovrebbe essere il controllo 'e.which' nel gestore invece di' e.keyCode'. – jbabey

+0

jbabey sembri aver ragione. Puoi postare come risposta in modo che io possa accettare? – dzumla011

risposta

11

Usa "che" invece di keyCode. "Quali" opere sia in scenario

$('textarea').keypress(function (e) { 
    if (e.which == '13') { 
     alert('code'); 
    } 
}); 
+2

(e.keyCode || e.which) === 13 – karaxuna

+0

@karaxuna Modificato il codice. –

+0

+1 Penso che la tua risposta sia ciò di cui ha bisogno :) – karaxuna

0

Soluzione alternativa:

var textarea = $('textarea').keypress(OnTextareaKeypress); 
$(function(){ 
    OnTextareaKeypress.call(textarea[0], { e: { which: 13 } }); 
}); 

function OnTextareaKeypress(e) { 
    if (e.which == '13') { 
     alert('code'); 
    } 
} 
6

Ecco una soluzione per il vostro problema http://jsfiddle.net/dima_k/zPv2a/

$('button').click(function(){ 
    debugger 
    var e = $.Event("keypress"); 
    e.keyCode = 13; // # Some key code value 
    $('#textbox').trigger(e); 
}); 

$('#textbox').keypress(function(e) 
{ 
    if (e.keyCode == '13') { 
     alert('code'); 
    } 
}); 
+1

non è questa una copia/incolla della risposta qui? http://stackoverflow.com/questions/832059/definitive-way-to-trigger-keypress-events-with-jquery – Omar

+2

Dai un'occhiata a una domanda. Credo che abbia già trovato la soluzione che hai allegato, ma non ha funzionato per lui. Quindi ho allegato un jsFiddle con una soluzione funzionante solo per dimostrare che funziona. –