2015-08-05 3 views
2

Я пытаюсь проверить поле ввода, но введенный текст исчезает при нажатии. Пожалуйста, помогите мне, в чем моя ошибка. благодаряТекст ввода исчезает при нажатии кнопки

<input type="text" class="a" /> 

<button id="test">Continue</button> 

<div class="b">error msg </div> 

$('#test').on('click', function() { 
    if ($('.a').val('')) { 
     $('.b').show(); 
    } else { 
     $('.b').hide(); 
    } 
}); 
+0

jsfiddle https://jsfiddle.net/5o93vvqz/1/ – rizwan

+0

'если ($ ('а'). Вал(). Длина = = 0) ' – elimad

+0

Я также ценю всех других друзей. – rizwan

ответ

2

Поскольку вы устанавливаете значение опорожнить в if заявлении вместо того, чтобы получить его.

$('.a').val('') установит значение .a в пустую строку. Чтобы получить значение, используйте $('.a').val().

Изменение if ($('.a').val('')) { в if ($('.a').val() == '') {

Demo

$('#test').on('click', function() { 
 
    if ($('.a').val() == '') { 
 
    $('.b').show(); 
 
    } else { 
 
    $('.b').hide(); 
 
    } 
 
});
.a { 
 
    border: black solid 1px; 
 
} 
 
.b { 
 
    display: none; 
 
    color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> 
 
<input type="text" class="a" /> 
 
<button id="test">Continue</button> 
 
<div class="b">error msg</div>

укороченная версия:

$('#test').on('click', function() { 
    $('.b').toggle(!(!!$('.a').val())); 
}); 

Demo

0

Если вы видите вывод $ ('. A') на консоли, вы обнаружите, что его массив. Таким образом, вы должны прочитать первый элемент и получить первое значение, как показано ниже

var test = $('.a')[0]; 
$(test).val() // this will be the value of textbox