根据文本框值显示div

时间:2013-10-03 14:07:53

标签: javascript php html textbox

我有一个输入字段,它从db获取它的值,假设值是M,K,H,J,V或G,具体取决于打开div所需的值aaa,bbb,ccc,ddd, eee或fff as text。

页面上显示的代码如下:我从数据库正在工作的数据库中省略了检索部分(输入框根据ID显示M,K,H,J,V或G)。 / p>

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>";

当我在开发者模式下检查源代码时,它显示从db中正确检索了与数据相关的项目部分:

<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")){

解决方案由ROBERT ROZAS

解决方案是在jsfiddle

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

1 个答案:

答案 0 :(得分: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/