Я нашел это онлайн:
var x = 0; // count for array length
$("input.placeholder").each(function(){
x++; //incrementing array length
});
var _values = new Array(x); //create array to hold default values
x = 0; // reset counter to loop through array
$("input.placeholder").each(function(){ // for each input element
x++;
var the_default = $(this).val();
var default_value = $(this).val(); // get default value.
_values[x] = default_value; // create new array item with default value
});
var current_value; // create global current_value variable
$('input.placeholder').focus(function(){
current_value = $(this).val(); // set current value
var is_default = _values.indexOf(current_value); // is current value is also default value
if(is_default > -1){ //i.e false
$(this).val(''); // clear value
}
});
$('input.placeholder').focusout(function(){
if( $(this).val() == ''){ //if it is empty...
$(this).val(current_value); //re populate with global current value
}
});
Как видите, он захватывает текст в атрибуте value
и устанавливает его как default_value
.Затем он проверяет current_value
против значения по умолчанию.
Я сталкиваюсь с проблемой.
В этом примере у нас есть такой элемент:
<input type="text" class="placeholder" value="potato">
Если пользователь фокусирует и расфокусирует ввод, он отлично работает - удаляет и снова заполняет "potato".
Однако, скажем, пользователь вводит "ioqiweoiqwe",и затем фокусирует ввод (заполняет остальную часть формы "). Затем они возвращаются к нашему вводу и удаляют весь их текст, и щелкают по другому полю. Вход будет переполнен" ioqiweoiqwe "- когда действительно, мы хотим, чтобы он был заново заполнен default_value
. Как мне это сделать?
С уважением, jQuery nub.
Примечание: я настроил здесь jsfiddle... немного после некоторых комментариев: http://jsfiddle.net/xmhCz/