2012-02-24 8 views
0

入力値が空であるかどうかを確認するために、キーを押した後にチェックを実行すると、別のアクションを実行できます。空の入力タイプのテキストチェックを実行中

たとえば、

$("input[name=amount]").keypress(function() { 
     $("table[name=apply]").show(); 
    }); 

ユーザーがすべてのキーストロークを削除した場合は、テーブルを非表示にします。

答えて

1
$("input[name=amount]").keyup(function() { 
    if (this.value == '') { 
     $("table[name=apply]").hide(); 
    } else { 
     $("table[name=apply]").show(); 
    } 
}); 

おそらく、イベントハンドラが実行される前に、テキストボックスの値が変更されているので、keyupまたはchangeイベントのいずれかを使用したいと思うでしょう。 keypressイベントは入力値が変更される前に発生します。たとえば、入力が空白でキーが入力された場合、イベントハンドラの値は空白として読み取られます。

ここにデモがあります:http://jsfiddle.net/jasper/C5KPq/

1

keypressは最新の値を提供しないため、keypressの代わりにkeyupイベントを使用して試すことができます。

$("input[name=amount]").keyup(function() { 
    //Here this points to the textbox element and value gives its content 
    if(this.value == ''){ 
      $("table[name=apply]").show(); 
    } 
}); 

テーブルを切り替える場合は、これを使用できます。

$("input[name=amount]").keyup(function() { 
    $("table[name=apply]").toggle(this.value != ''); 
}); 

toggle(showOrHide) - 一致する要素を表示または非表示にします。

Demo

0

キーストロークが終了した後、あなたがチェックを実行するには、次の

if($(this).val() == "") 
1

使用して、keyup()メソッドを使用することができます:あなたはkeypressにバインドする場合

$("input[name=amount]").keyup(function() { 
    if(this.value === ''){....} 
}); 

または​​イベントの場合、iの値あなたのイベントハンドラ内のnputはまだキーストロークの影響を受けていません。このため、代わりにkeyupにバインドする必要があります。

0

試してみてください。

if ($("input[name=amount]").val() == '') // input is empty 
関連する問題