0

データベースから値を取得する入力フィールドがあります。値は、aaa、bbb、ccc、ddd、eee、または fff で div を開くために必要な値に応じて、M、K、H、J、V、または G であると言えます。テキストとして。

ページに表示されるコードは次のとおりです。その部分が機能しているデータベースからの取得部分を省略しました (入力ボックスには、ID に応じて M、K、H、J、V、または G が表示されます)。

echo "<input type='text' name='periode' id='periode' data-related-item='" .$row['periode']. "' value='" .$row['periode']. "'>";
echo "<div class='hidden'><div id='M'>aaa</div></div>";
echo "<div class='hidden'><div id='K'>bbb</div></div>";
echo "<div class='hidden'><div id='H'>ccc</div></div>";
echo "<div class='hidden'><div id='J'>ddd</div></div>";
echo "<div class='hidden'><div id='V'>eee</div></div>";
echo "<div class='hidden'><div id='G'>fff</div></div>";

開発者モードでソース コードを確認すると、データ関連項目の部分がデータベースから正しく取得されていることがわかります。

<input type="text" name="periode" id="periode" data-related-item="M" value="M">

次のJSを使用したいのですが、テキストボックスで動作するように変更する必要があります.

<script type="text/javascript">
function evaluate1(){
var item = $(this);
var relatedItem = $("#" + item.attr("data-related-item")).parent();

if(item.is(":checked")){
    relatedItem.fadeIn();
}else{
    relatedItem.fadeOut();   
}
}

$('input[type="checkbox"]').click(evaluate1).each(evaluate1);
</script> 

最も簡単なアプローチは、オフコースの変更です。

$('input[type="checkbox"]').click(evaluate1).each(evaluate1);

の中へ

$('input[type="textbox"]').click(evaluate1).each(evaluate1);

しかし、私は何をする必要がありますか:

if(item.is(":checked")){

事前に助けてくれてありがとう。

私は以下を試しましたが、うまくいきません。

if(item.is("M||K||H||J||V||G")){

ロバート・ロザスによるソリューション

解決策はjsfiddleにあります

http://jsfiddle.net/dXTtz/7/

4

1 に答える 1

2

あなたが提供したコードに基づいてこのコードを作成しました:

$(document).ready(function(){

$("#periode").keyup(function(){
 var valor = $("#periode").val();
    $(".hidden").each(function(){
     var hijo = $(this).children().attr('id');   
     if(hijo == valor)
     {
      $(this).removeClass("hidden");
     }
    });
});

});

ここで作業フィドル: http://jsfiddle.net/robertrozas/dXTtz/2/

この方法はページの読み込みに取り組んでいます: http://jsfiddle.net/robertrozas/dXTtz/4/

ページの読み込みと余分な隠し div の削除: http://jsfiddle.net/dXTtz/5/

于 2013-10-03T14:37:39.813 に答える