【问题标题】:Input text is disappear when it button is clicked单击按钮时输入文本消失
【发布时间】:2015-10-27 16:08:10
【问题描述】:

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

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

【问题讨论】:

标签: jquery validation input field


【解决方案1】:

因为您在 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

【讨论】:

    【解决方案2】:

    如果你在控制台看到 $('.a') 的输出,你会发现它是一个数组。因此,您需要读取第一个元素并获取第一个值,如下所示

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      相关资源
      最近更新 更多