Jquery - проверить длину поля ввода?
Приведенный ниже код предназначен для включения кнопки отправки, когда пользователь нажимает кнопку в поле textarea. Он работает, но я также пытаюсь сделать так, чтобы он включался только в том случае, если в поле было хотя бы один символ. Я попробовал обернуть его:
if ($(this).val().length > 1)
{
}
Но, похоже, это не сработало... Любые идеи?
$("#fbss").focus(function () {
$(this).select();
if ($(this).val() == "Default text") {
$(this).val("");
$("input[id=fbss-submit]").removeClass();
$("input[id=fbss-submit]").attr('disabled', false);
$("input[id= fbss-submit]").attr('class', '.enableSubmit');
if ($('.charsRemaining')) {
$('.charsRemaining').remove();
$("textarea[id=fbss]").maxlength({
maxCharacters: 190,
status: true,
statusClass: 'charsRemaining',
statusText: 'characters left',
notificationClass: 'notification',
showAlert: false,
alertText: 'You have exceeded the maximum amount of characters',
slider: false
});
}
}
});
Ответы
Ответ 1
Это не работает, потому что, судя по остальной части кода, начальным значением текстового ввода является "текст по умолчанию" - это более одного символа, поэтому ваше условие if
всегда истинно.
Самый простой способ заставить его работать, как мне кажется, - это учитывать этот случай:
var value = $(this).val();
if ( value.length > 0 && value != "Default text" ) ...
Ответ 2
Если вы имеете в виду, что хотите включить отправку после того, как пользователь набрал хотя бы один символ, вам необходимо прикрепить ключевое событие, которое проверит его для вас.
Что-то вроде:
$("#fbss").keypress(function() {
if($(this).val().length > 1) {
// Enable submit button
} else {
// Disable submit button
}
});