使用jQuery检查输入是否为空

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

这是我的代码:

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

它应用警告类而不管填充或不填充字段。

我究竟做错了什么?


$('#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')抓取多个元素,指定一个上下文或者如果你只想引用一个单独的元素(假设上下文的子节点有一个$('input:text') ,就使用this关键字。


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

$('#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。 好运。


对模糊进行处理太有限。 它假设有关于表单域的重点,所以我更愿意在提交时完成它,并通过输入映射。 经过多年的处理花式模糊,焦点等技巧,保持简单的事情将产生更多的可用性。

$('#signupform').submit(function() {
    var errors = 0;
    $("#signupform :input").map(function(){
         if( !$(this).val() ) {
              $(this).parents('td').addClass('warning');
              errors++;
        } else if ($(this).val()) {
              $(this).parents('td').removeClass('warning');
        }   
    });
    if(errors > 0){
        $('#errorwarn').text("All fields are required");
        return false;
    }
    // do the ajax..    
});
链接地址: http://www.djcxy.com/p/89937.html

上一篇: Check if inputs are empty using jQuery

下一篇: Error requestAnimationFrame in ie9 any alternate solution