jQuery-単純な入力検証-「空」および「空ではない」
検証したい入力があります:
<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」が空の場合でも、「empty」メッセージでアラートを表示する方法はありません。したがって、基本的に、私が何をしても、最初のステートメントのみが真であり、2番目のステートメントは常に偽です。
どうしましたか?
JQueryの:emptyセレクターは、に子要素がないという意味で空のすべての要素を選択します。テキストノード。テキストを含まないすべての入力ではありません。
Jquery:入力要素が入力されていないかどうかを確認する方法
上記のスレッドから盗まれたコードは次のとおりです。
_$('#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
あなたはこれを行うことができます
_$("#input").blur(function(){
if($(this).val() == ''){
alert('empty');
}
});
_
http://jsfiddle.net/jasongennaro/Y5P9k/1/
入力がfocus
、つまり.blur()
を失った場合、_#input
_の値を確認します。
空の_== ''
_の場合、アラートをトリガーします。
実際には、これを行う簡単な方法があります。
if ($("#input").is('empty')) {
console.log('empty');
} else {
console.log('not empty');
}
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');
}
});