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

Wor*_*sor 17 validation ajax jquery

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

<input type="text" id="input" />
Run Code Online (Sandbox Code Playgroud)

这是JS:

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

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

            else if("#input:empty") {
                alert('empty'); 
            }
        });
Run Code Online (Sandbox Code Playgroud)

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

怎么了?

Gor*_*son 26

JQuery的:空选择器选择页面上所有空的元素,因为它们没有子元素,包括文本节点,而不是所有没有文本的输入.

Jquery:如何检查输入元素是否尚未填充.

这是从上面的线程中窃取的代码:

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

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


Jas*_*aro 6

你可以这样做

$("#input").blur(function(){
    if($(this).val() == ''){
        alert('empty'); 
    }
});
Run Code Online (Sandbox Code Playgroud)

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

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

如果它是空的,== ''则触发警报。