2012-02-10 6 views
0

を選択するために....のjQueryどのように私はいくつかの項目を選択し、値が空でないかどうかを確認し、previus項目を隠す....しかし、動作しないために必要な項目

<script> 
    if($('input[type=text],input[type=email],input[type=password]').val() != ""){ 
    $(this). prev().hide(); 
    } 
</script> 

<div class="prova"></div> 
<input type="text"> 

<div class="prova"></div> 
<input type="text"> 

<div class="prova"></div> 
<input type="text"> 

私はページをロードするときにすべての入力のためにprevius divを非表示にしません....誰かが私を助けることができますか?

答えて

0

.val()に関数を渡すことで実行できます。

var inputs = $('input[type=text],input[type=email],input[type=password]'); 

inputs.val(function(i,curr_val){ 
    if(curr_val) 
     $(this).prev('.prova').hide(); 
    return curr_val; 
}); 
+0

この方法は、OPのケースではない要素の値を設定することが最も重要です。 – ShankarSangoli

1

あなたはこれをしたい:

$(':input').each(function() { 
    if ($(this).val() != "") { 
    $(this).prev().hide(); 
    } 
}); 
2

あなたはそれがマッチした要素の集合内の最初の要素の現在の値を取得マッチした要素のセットのコールval()メソッドを呼び出すとき。したがって、各要素の値をループチェックして、前の要素を非表示にする必要があります。これを試して。

$('input[type]').each(function(){ 
    if($(this).val()){ 
     $(this).prev().hide(); 
    } 
}); 

値がある場合は前の要素を表示する必要がある場合は、このスクリプトを使用できます。

$('input[type]').each(function(){ 
    $(this).prev().toggle($(this).val() == ''); 
}); 

.toggle(showOrHide) - ブール値入力に基づいて要素を表示または非表示にします。

関連する問題