Задать вопрос
ingenious_motherfucker
@ingenious_motherfucker
Решаю задачки

Почему проверка строки на пустоту (if(...val()=="")) не работает (jquery)?

Сижу я такой, хочу сделать плейсхолдер для инпута своими руками.

Сам инпут вот
<input type="text" onCLick="inputPlaceholderHide('Ваше имя *', 'name');" onBlur='inputPlaceholderShow("Ваше имя *", name);' id='block6_input_name' value="Ваше имя *">


Часть скрипта вот:

function inputPlaceholderHide(value, blockId){
                if ($('#block6_input_'+blockId).val()==value){
                    $('#block6_input_'+blockId).val('');
                }
            } // работает


function inputPlaceholderShow(value, blockId){
                if ($('#block6_input_'+blockId).val()==''){
                    $('#block6_input_'+blockId).val(value);
                }
            } // не работает


WTF?
Обнаружил что иф не проходит во втором, хотя строка пустая, даже алерт через консоль запускал и сообщение пустое было. И с нулем сравнивал, и с нуллом – бесполезно. Решение нашел в обращение через стандартный яваскрипт:
function inputPlaceholderShow(value, blockId){
                if (document.block6_form.block6_input_name.value == ""){
                    document.block6_form.block6_input_name.value = value;
                }
            } // работает


Но все-таки мучает вопрос – почему не сработало? Через val() нельзя сравнивать с пустой строкой?
  • Вопрос задан
  • 1117 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
ingenious_motherfucker
@ingenious_motherfucker Автор вопроса
Решаю задачки
Я нашел проблему, у меня в одной функции name передается в кавычках, а в другой без.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
не преобразовал типы. если хочешь сравнивать с "", тогда сделай для val .toString()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽