如何使用jQuery检查输入是否为空?

  • 回答 (2)
  • 关注 (0)
  • 查看 (49)

我有一个表单,我希望填写所有的字段。如果一个字段被点击,然后没有填写,我想显示一个红色的背景。

这是我的代码:

$('#apply-form input').blur(function () {
  if ($('input:text').is(":empty")) {
    $(this).parents('p').addClass('warning');
  }
});

它将应用警告类,而不管字段是否被填充。

错在那里了?

123456a134123456a134提问于
心愿回答于

每个人都有正确的想法,但是我喜欢更加明确一些,个人价值观。

$('#apply-form input').blur(function() {
     if(!$.trim(this.value).length) { // zero-length string AFTER a trim
            $(this).parents('p').addClass('warning');
     }
});

如果不使用.length,那么输入'0'可以被标记为坏,并且如果没有$ .trim,5个空格的输入可以被标记为ok。好运。

嗨喽你好摩羯座回答于
$('#apply-form input').blur(function()
{
    if( !$(this).val() ) {
          $(this).parents('p').addClass('warning');
    }
});

而且你不一定需要.length或者看看是否>0因为空字符串的计算结果为false,但是如果你想出于可读性的目的:

$('#apply-form input').blur(function()
{
    if( $(this).val().length === 0 ) {
        $(this).parents('p').addClass('warning');
    }
});

如果您确定它将始终在textfield元素上运行,那么您可以使用this.value。

$('#apply-form input').blur(function()
{
      if( !this.value ) {
            $(this).parents('p').addClass('warning');
      }
});

另外,你应该注意到$('input:text')抓取多个元素,指定一个上下文,或者this如果你只想引用一个单独的元素(假设在上下文的子元素中有一个文本字段),就使用关键字。

扫码关注云+社区

领取腾讯云代金券