Сбросить значение по умолчанию для ввода в jquery - PullRequest
2 голосов
/ 20 января 2012

Я не помню, почему я использую this.defaultValue ? this.defaultValue : '': в приведенном ниже коде, вместо this.defaultValue.

$('input:text, textarea').blur(function() {
if ($.trim(this.value) == ''){
this.value = (this.defaultValue ? this.defaultValue : '');
}
});

Почему бы не это:

$('input:text, textarea').blur(function() {
if ($.trim(this.value) == ''){
this.value = this.defaultValue;
}
});

Ответы [ 3 ]

1 голос
/ 20 января 2012

Это безопасность.В случае, если this.defaultValue равно undefined, он возвращает пустую строку, избегая this.value для получения неопределенного.

Дело в том, что это свойство доступно только для <input>´ and `, в значительной степени ограничивая область действия.такой функции.Например, довольно часто иметь выбор в форме.

Более простой подход - использовать значения по умолчанию в атрибуте "data-".Это функция HTML5, но она имеет своего рода обратную совместимость, так как они являются просто HTML-атрибутами.

<select data-defaultValue="1">
    <option value="1">One</option>
    <option value="2">Two</option>
</select>

И вы можете получить доступ к атрибуту с помощью:

$('select').attr('data-defaultValue');
// or
$('select').data('defaultValue');

Дополнительная информация:

1 голос
/ 20 января 2012

Потому что, если defaultValue не определено, вы получите 'undefined' вместо ''

0 голосов
/ 20 января 2012

В связанной заметке, почему бы не использовать атрибут-заполнитель HTML5 - вам не нужно возиться с defaultValue.http://www.w3schools.com/html5/att_input_placeholder.asp

Насколько я знаю, он не поддерживается в IE, но хорошо работает на других

...