テキスト領域のあるフォームがあり、Enterキーを押すとフォームが送信されます。フォーム送信の代わりに改行文字を追加する方法を教えてください。
$('textarea').keypress(function(event) {
if (event.which == 13) {
event.stopPropagation();
}
});
これは役立つはずです
$('#myProblematicForm textarea').keypress(function(event) {
if (event.which == 13) {
event.preventDefault();
this.value = this.value + "\n";
}
});
それが価値があるもののために、私はOS XでChromeを使用しています Enter\n
をテキストエリアに挿入して、デフォルトでnotフォームを送信します。
$(document).ready(function(){
$("#text").keypress(function(event) {
if (event.which == 13) {
var s = $(this).val();
$(this).val(s+"\n"); //\t for tab
}
});
});
これは、上記のjqueryコードで実行できます。上記のスクリプトをHTML入力フィールドのコードの前に記述する場合は、ready関数の使用が必要であり、入力フィールドコードの後に記述する場合は不要であることに注意する必要があります。機能しない場合は、\の代わりに\ tを使用してください。 n動作します。
あなたはこのコードを試すことができます:
$(document).ready(function() {
$("textarea").keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});
$(document).ready(function() {
$('textarea').keydown(function(event){
if (event.keyCode == 13) {
event.preventDefault();
var s = $(this).val();
$(this).val(s+"\n");
}
});
});
以前の回答は、textareaの現在の値の分割を処理せず、改行文字を追加するだけです。以下は、イベントがフォームにバブリングするのを防ぎ、 'enter'での典型的なtextarea動作を許可します。
$('textarea').keydown(function(event) {
if (event.keyCode === 13) {
event.stopPropagation();
}
});
これは私のために働いた
$(document).keypress(function(e) {
if(e.which == 13) {
if(document.activeElement.tagName != "TEXTAREA") {
e.preventDefault();
};
}
})