|
|
|
| Изучаю jQuery по диску Е.Попова. Там он дает такой код :
var myEmail = $('#email');
myEmail.focus(function(){
if ($(this).val()== $(this).attr('defaultValue')) {
$(this).val('');
}
});
myEmail.blur(function(){
if ($(this).val()== '') {
$(this).val($(this).attr('defaultValue'));
}
});
|
У него он работает. А у меня нет - при значении 'defaultValue' в аргументе attr.
Но работает при подстановке действительного значения value='Пример:you@site.ru'
var myEmail = $('#email');
myEmail.focus(function(){
if ($(this).val()== 'Пример:you@site.ru') {
$(this).val('');
}
});
myEmail.blur(function(){
if ($(this).val()== '') {
$(this).val('Пример:you@site.ru');
}
});
|
Реально понимаю, что что-то не то с синтаксисом в выражении :
$(this).attr('defaultValue')
|
Что именно не пойму. Может кто поможет?
Даю отрывок HTML кода:
<p><strong>Укажите Ваш email:</strong></p>
<input type="text" id="email" value="Пример:you@site.ru" />
|
Причем если убрать в самом верхне коде из аргумента attr первую часть слова 'default', а оставить 'value' именно с маленькой буквы, то при фокуссировке в текстарее значение value исчезает, но не срабатывает .blur -расфокуссировка. | |
|
|
|
|
|
|
|
для: gomer505
(03.12.2011 в 18:08)
| | попробуйте не использовать зарезервированные слова, типа 'defaultvalue'
ну и в вашем html нет атрибута такого defaultvalue | |
|
|
|
|
|
|
|
для: gomer505
(03.12.2011 в 18:08)
| | вам нужно типа такого
var myEmail = $('#email');
myEmail.data({'def' : myEmail.val()})
myEmail.focus(function(){
if ($(this).val() == $(this).data('def')) {
$(this).val('');
}
});
myEmail.blur(function(){
if ($(this).val()== '') {
$(this).val($(this).data('def'));
}
});
|
| |
|
|
|
|
|
|
|
для: AlexSol
(03.12.2011 в 19:46)
| | Спасибо, AlexSol. Ваш код работает. Жаль без комментов, но и на том спасибо. Постараюсь запомнить и разобраться. Две недели искал ответ. Не могу понять как у Попова все работает...
myEmail.data({'def' : myEmail.val()})
| Устанавливаем агументом значения value="def" в инпуте id = "email"
Я правильно понимаю эту строку? Только синтаксис не очень понятен. Еще не докопал... | |
|
|
|
|
|
|
|
для: gomer505
(04.12.2011 в 23:01)
| | data() это как хранилище переменных для выбранного объекта.
к любому узлу можно добавить любые данные
$(e).data({ключ1:"значение1",ключ2:"значение2"})
получить - alert( $(e).data("ключ1") )
jquery.data, привязка данных к элементам dom - http://jquerylist.ru/tutorials/extend-and-data-more-than-just-internal-jquery-methods.html | |
|
|
|