2011-02-10 8 views
10

yeni çizgiler izin vermeyin - Yarı Sözde kodda ...I (metinde girmek ya da kopyalama basarak) yeni hatlar eklenecek izin veremez nasıl jQuery kullanarak textarea

$('textarea').keydown(function(){ 
$(this).remove_new_lines(); 
}); 

Teşekkür!

DÜZENLEME:

o kadar ham olarak olurdu izleyerek veya daha iyi bir yolu var mı?

function removeNL(s){ 
    return s.replace(/[\n\r\t]/g,); 
} 

$('textarea').keydown(function(){ 
$(this).val(removeNL($(this).val)); 
}); 
+0

kullanıcı yazarak yada tümünü içeren – Fatih

+0

içerik ayarlarken Çözümlerin altında, Chrome geliştirici araçlarını açabilir ve alan içeriğini manuel olarak düzenleyebilirim. Ya da javascript'i devre dışı bırakın. :) – kieran

+0

yazmakta olduğunu textarea –

cevap

17

bunu yapmak için iki yöntem vardır: Girilen olduğu gibi her karakteri kontrol edip eğer return false Bunu göstermek istemezsiniz, her değişiklik/anahtarlamada tüm içeriği kontrol edebilirsiniz. Birincisi daha performanslı olsa da, kullanıcının içerdiği içeriği istenmeyen karakterler içerdiği durumlarda çalışmayacaktır. O nedenle ben, (bütün dikey boşluk izin vermez) böyle bir şey ikinci bir yaklaşım öneriyor:

$('textarea').on('keyup', function(){ 
    $(this).val($(this).val().replace(/[\r\n\v]+/g, '')); 
}); 
+0

gsub nedir? Bu, tanınan bir fonksiyon değil diyor – kieran

+0

Bir Ruby yöntemi ... hahaha. Whoops. JavaScript eşdeğeri olan 'replace()' içinde değiştirildi. – coreyward

+0

Çeşitli yeni satırların nasıl değiştirileceği hakkında bir fikir var mı? Bu yaklaşımı denedim, işe yaramadı: $ ('# text') val ($ ('# text'). Val(). Değiştirin (/ \ v +/g, "\ n")); – andufo

5

sadece return false 13 eşit olup olmadığını, keyCode kontrol edebilirsiniz

 
$('#TEXTAREA').keypress(function(e){ 
    if (e.keyCode == 13) return false 
}) 
+3

, içeriğin kullanıcı tarafından yapıştırılmasını sağlamıyor – kieran

1
$('textarea').keydown(function(e){ 
var s = $('textarea').val(); 
while (s.indexOf("\n") > -1) 
    s = s.replace("\n",""); 
$('textarea').val(s); 
}); 
+0

iyi çalışıyor. Yine de üstte biraz görünüyor? – kieran

İlgili konular