2012-12-24 9 views

risposta

25
$('textarea').keypress(function(event) { 
    if (event.which == 13) { 
     event.preventDefault(); 
     var s = $(this).val(); 
     $(this).val(s+"\n"); 
    } 
});​ 

JSFiddle Demo

+1

bene per ogni amico che ha risposto dovrebbe leggere correttamente la domanda;) –

+1

+1 per essere l'unica persona finora a farlo! – Archer

+1

Beh, stavo pensando di rispondere per primo ma ho avuto una confusione su '/ n' o' \ n';) –

1

si può provare questo codice:

$(document).ready(function() { 
    $("textarea").keydown(function(event){ 
    if(event.keyCode == 13) { 
     event.preventDefault(); 
     return false; 
    } 
    }); 
}); 
+0

Questo lo disabilita attraverso la finestra, che potrebbe non essere intesa. Dovresti applicarlo alla casella di input in questione. – ryadavilli

2

Questo dovrebbe aiutare

$('#myProblematicForm textarea').keypress(function(event) { 
    if (event.which == 13) { 
    event.preventDefault(); 
    this.value = this.value + "\n"; 
    } 
}); 

Per quello che vale, io sto usando Chrome su OS X e Enter inserisce un \n in una textarea per me e fa non inviare moduli per impostazione predefinita.

+0

amico sto usando anche Google Chrome Ma su Windows, non aggiunge interruzione di linea come predefinito! –

+0

@AspiringAqib, non sono tuo amico, amico: P –

+0

ok, sto usando anche Google Chrome, ma su Windows, non aggiunge interruzioni di linea come predefinito! –

1
$(document).ready(function() { 
    $('textarea').keydown(function(event){ 
    if (event.keyCode == 13) { 
     event.preventDefault(); 
     var s = $(this).val(); 
     $(this).val(s+"\n"); 
    } 
    }); 
}); 
1

risposte precedenti non gestiscono dividere il valore corrente del textarea e aggiunge semplicemente un carattere di nuova riga. Quanto segue interrompe l'evento fino al modulo e consente comunque il tipico comportamento dell'area di testo su "invio".

$('textarea').keydown(function(event) { 
    if (event.keyCode === 13) { 
    event.stopPropagation(); 
    } 
}); 
1

questo ha lavorato per me

$(document).keypress(function(e) { 
if(e.which == 13) { 
    if(document.activeElement.tagName != "TEXTAREA") { 
     e.preventDefault(); 
    }; 
    } 
}) 
0
$(document).ready(function(){ 
$("#text").keypress(function(event) { 
    if (event.which == 13) { 
     var s = $(this).val(); 
     $(this).val(s+"\n"); //\t for tab 
    } 
});  
}); 

Questo può essere fatto dal codice jQuery che ho dato sopra. È necessario notare che l'uso della funzione ready è necessario quando si scrive sopra lo script prima dei codici del campo di input HTML e non è necessario quando lo si scrive dopo i codici del campo di input. Se non funziona prova a usare \ t al posto di \ n funzionerà.

+0

Sebbene questo codice possa rispondere alla domanda, fornire un contesto aggiuntivo riguardo a come e/o perché risolve il problema migliorerebbe il valore a lungo termine della risposta. Leggere questo [come risposta] (http://stackoverflow.com/help/how-to-answer) per fornire una risposta di qualità. – thewaywewere

+0

Grazie per i suggerimenti @thewaywewere, vedere la mia risposta modificata, spero che possa aiutarti. –

Problemi correlati