Bir metin alanının içine tıkladığınızda tüm içeriğinin seçilmesini nasıl sağlayabilirim?
Ve sonunda tekrar tıkladığınızda seçimi kaldırmak için.
Bir metin alanının içine tıkladığınızda tüm içeriğinin seçilmesini nasıl sağlayabilirim?
Ve sonunda tekrar tıkladığınızda seçimi kaldırmak için.
Yanıtlar:
Fareyi kullanarak imleci her hareket ettirmeye çalıştıklarında tüm metin seçildiğinde kullanıcının sinirlenmesini önlemek için, bunu focus
olayı değil olayı kullanarak yapmalısınız click
. Aşağıdakiler işi yapacak ve Chrome'da en basit sürümün (yani select()
bir focus
olay işleyicisinde yalnızca metin alanının yöntemini çağırma) çalışmasını engelleyen bir sorunu çözecektir .
jsFiddle: http://jsfiddle.net/NM62A/
Kod:
<textarea id="foo">Some text</textarea>
<script type="text/javascript">
var textBox = document.getElementById("foo");
textBox.onfocus = function() {
textBox.select();
// Work around Chrome's little problem
textBox.onmouseup = function() {
// Prevent further mouseup intervention
textBox.onmouseup = null;
return false;
};
};
</script>
jQuery sürümü:
$("#foo").focus(function() {
var $this = $(this);
$this.select();
// Work around Chrome's little problem
$this.mouseup(function() {
// Prevent further mouseup intervention
$this.unbind("mouseup");
return false;
});
});
tab
metin alanına girerseniz başarısız oluyor - diğer çözümünüz her iki durumda da çalışıyor :)
$("#foo").mouseup(function() {
$("#foo").unbind("mouseup");
return false;
});
this
Sekme ve krom sorununa çözüm ve yeni jquery yolu ile daha iyi bir yol
$("#element").on("focus keyup", function(e){
var keycode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
if(keycode === 9 || !keycode){
// Hacemos select
var $this = $(this);
$this.select();
// Para Chrome's que da problema
$this.on("mouseup", function() {
// Unbindeamos el mouseup
$this.off("mouseup");
return false;
});
}
});
Bunu kullandım:
$('.selectAll').toggle(function() {
$(this).select();
}, function() {
$(this).unselect();
});
readonly
sonra özniteliği ekleyerek salt okunur hale getirmek isteyebilirsiniz .
$('textarea').focus(function() {
this.select();
}).mouseup(function() {
return false;
});
Biraz daha kısa jQuery sürümü:
$('your-element').focus(function(e) {
e.target.select();
jQuery(e.target).one('mouseup', function(e) {
e.preventDefault();
});
});
Chrome köşe kasasını doğru şekilde kullanıyor. Örnek için http://jsfiddle.net/Ztyx/XMkwm/ adresine bakın .
Bir öğedeki metni seçme (farenizle vurgulamaya benzer)
:)
Bu gönderideki kabul edilen yanıtı kullanarak işlevi şu şekilde çağırabilirsiniz:
$(function() {
$('#textareaId').click(function() {
SelectText('#textareaId');
});
});
$(this).select()
kullanacağım çünkü daha az kod var :)