2016-03-26 20 views
1

入力値に基づいてinputとdivを表示/非表示しようとしています。javascriptで入力値に基づいて要素を非表示にする方法は?

以下のコードが動作していません。

HTML:(:クリックEX)イベントなしで要素を非表示にするには、どのように

<div> 
    <span class='just-show'>Show This Label</span> 
    <input class='for-input' type='text' value='*$set-by-sql-data*'> 
</div> 

JS

$(document).ready(function() { 
    if ($(".for-input").val()=='') { 
     $(".just-show").show(); 
     $(".for-input").hide(); 
    } else { 
     $(".just-show").hide(); 
     $(".for-input").show(); 
    } 
    return false; 
}); 

を?準備が整いました。

+0

入力値を前もって設定しているので、他のフォークをハードコードしないのはなぜですか?入力値がユーザによって設定されていないonready()によって設定されているため、IFがどのように実行されるかを知っています... – dandavis

+0

表示と非表示の両方を行っている場合、おそらくトグルが良いかもしれません。それは自動的に表示されます/表示されません – Rasclatt

+0

あなたは正しいダンダビスさんです。しかし、入力値はクライアント側で挿入し、デフォルトは 'NULL'に設定します。したがって、データは空にすることができます。 –

答えて

0

を使用でき

$(document).on('change', 'input', function() { 
    // Does some stuff and logs the event to the console 
}); 

それとも

inputのような入力識別子である
$("input").change(function(){ 
    // Does some stuff and logs the event to the console 
}); 

あなた

.for-inputあなたの欲望のjQueryコード:

$(document).on('change', '.for-input', function() { 
    if ($(".for-input").val()=='') { 
     $(".just-show").show(); 
     $(".for-input").hide(); 
    } else { 
     $(".just-show").hide(); 
     $(".for-input").show(); 
    } 
}); 

例:

$(document).ready(function() { 
 
    if ($(".for-input").val()=='') { 
 
     $(".just-show").show(); 
 
     $(".for-input").hide(); 
 
    } else { 
 
     $(".just-show").hide(); 
 
     $(".for-input").show(); 
 
    } 
 
    //return false; 
 
    
 
    $(document).on('change', '.for-input', function() { 
 
    if ($(".for-input").val()=='') { 
 
     $(".just-show").show(); 
 
     $(".for-input").hide(); 
 
    } else { 
 
     $(".just-show").hide(); 
 
     $(".for-input").show(); 
 
    } 
 
    }); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div> 
 
    <span class='just-show'>Show This Label</span> 
 
    <input class='for-input' type='text' value='*$set-by-sql-data*'> 
 
</div>

+0

OPは "_イベントなしで要素を隠す方法"を尋ねましたが、少なくとも不可能だと教えてください。 – dandavis

+0

クール!これは仕事です。今私はjqueryのlibを忘れていたことに気付いています。私はありがとうございます。 –

+0

$(document).ready(function(){})は処理できませんか? Mr dandavis –

0

あなたは何を表示しないようにCSSプロパティを設定することができます。

$('.for-input').css('display', 'none'); 
関連する問題