单击按钮时输入文本消失

时间:2015-08-05 03:39:47

标签: jquery validation input field

我正在尝试验证输入字段,但输入字段文本在点击时消失。请帮帮我解决我的错误。谢谢

<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();
    }
});

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

如果你在控制台上看到$(&#39; .a&#39;)的输出,你会发现它是一个数组。所以你需要读取第一个元素并获得第一个值,如下所示

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