我希望有一个文本输入,焦点选择内部的所有文本,如果有的话。这样我就可以点击文本输入并开始输入而不必清除当前值,假设我想覆盖文本输入中已有的内容。
我如何使用jQuery做到这一点?
答案 0 :(得分:7)
$("#myInputField").focus(function(){
// Select input field contents
this.select();
});
// Add this behavior to all text fields
$("input[type=text]").focus(function(){
// Select field contents
this.select();
});
答案 1 :(得分:4)
要选择文字,您可以执行以下操作:
$(".inputs-to-which-you-want-to-apply-this-behavior").focus(function() {
this.select();
});
另一种方法,它不选择文本,而是删除它(只有当你将框留空时才更换它)看起来像这样: / p>
$(document).ready(function() {
$(".inputs-that-currently-have-a-default-value-in-them").each(function() {
var original = $(this).val();
$(this).focus(function() {
if ($(this).val() == original)
$(this).val('');
});
$(this).blur(function() {
if ($(this).val() == '')
$(this).val(original);
});
});
});
(如果开头的方框中的文字是“输入您的名字”的占位符文字,但是如果框中的内容是,例如,我上次输入的名称,那么我更喜欢后一种方法选择文本肯定会更好。)
答案 2 :(得分:0)
根据我的尝试,这是我使用的大多数浏览器中的默认行为。
尽管select()
函数的功能与其他人所说的相同。相反,我认为如果字段是聚焦的话,将输入字段的值设置为空白是有效的。
类似的东西:
$(":input").focus = function(){if(this.type=="text"){value=""}return true};