jQuery - 简单的输入验证 - “空”和“非空”

时间:2011-07-23 15:43:37

标签: jquery ajax validation

我有一个我要验证的输入:

<input type="text" id="input" />

这是JS:

        jQuery("#input").live('change', function() {

            if("#input:not(:empty)") {
                alert('not empty');
            }   

            else if("#input:empty") {
                alert('empty'); 
            }
        });

即使“#input”为空,也无法显示带有“空”消息的警报。所以,基本上,无论我做什么,只有第一个陈述是真的,第二个陈述是假的,总是。

怎么了?

4 个答案:

答案 0 :(得分:24)

JQuery's :empty selector 选择页面上的所有元素都是空的,因为他们没有子元素,包括文本节点,而不是所有输入都有其中没有文字。

<强> Jquery: How to check if an input element has not been filled in.

以下是从上述帖子中窃取的代码:

$('#apply-form input').blur(function()          //whenever you click off an input element
{                   
    if( !$(this).val() ) {                      //if it is blank. 
         alert('empty');    
    }
});

这是因为JavaScript中的空字符串是'假值',这基本上意味着如果您尝试将其用作布尔值,它将始终计算为false。如果需要,您可以将条件更改为$(this).val() === ''以增加清晰度。 :d

答案 1 :(得分:4)

你可以这样做

$("#input").blur(function(){
    if($(this).val() == ''){
        alert('empty'); 
    }
});

http://jsfiddle.net/jasongennaro/Y5P9k/1/

当输入丢失focus .blur()时,请检查#input的值。

如果为空== '',则触发警报。

答案 2 :(得分:3)

实际上有一种更简单的方法,只需:

if ($("#input").is('empty')) {
console.log('empty');
} else {
console.log('not empty');
}

答案 3 :(得分:2)

    jQuery("#input").live('change', function() {
        // since we check more than once against the value, place it in a var.
        var inputvalue = $("#input").attr("value");

        // if it's value **IS NOT** ""
        if(inputvalue !== "") {
            jQuery(this).css('outline', 'solid 1px red'); 
        }   

        // else if it's value **IS** ""
        else if(inputvalue === "") {
            alert('empty'); 
        }

    });