2012-10-22 124 views
5

我有以下challange。根据选定的值显示字段

我有一个条目表格,人们可以添加一个新的条目,并在批准他们也可以编辑它。 挑战在于隐藏基于选择的特定字段。 当用户添加一个新条目时,他们必须选择一个特定的类别。基于此,一些领域是隐藏的。

这是我使用至今代码:

<select name="entry.parent" size="1" style="width: 360px;" id="SPCatChooserSl" class="required"> 
<option value="">Selecteer categorie</option> 
<option selected="selected" value="55">- Option 1</option> 
<option value="59">- Option 2</option> 

</select> 

<div id="option1"> 
<p>Hier comes option 1</p> 
</div> 
<div id="option2"> 
<p>Here comes option 2</p> 
</div> 

<script> 
jQuery(function() { 
jQuery('#option1').hide(); 
jQuery('#option2').hide(); 
}); 

jQuery(function() { 
jQuery("#SPCatChooserSl").change(function() { 
    if (this.value == '55') { 
     jQuery('#option1').show(); 
    } else { 
     jQuery('#option1').hide(); 
    } 
    if (this.value == '59') { 
     jQuery('#option2').show(); 
    } else { 
     jQuery('#option2').hide(); 
    } 
    }); 
    }); 
    </script>  

这工作,当用户仍然需要选择一个类别。它根据选择隐藏字段。

但是,当用户编辑条目时,该类别已被选中并且可能不会被更改。因此,DIVS选项1和选项2是隐藏的,并且由于用户没有选择一个类别,所以div永远不可见。

所以问题是:如何检查选择列表中的特定值,显示没有使用的正确字段。

我希望我的问题/ challange显然:)

在此先感谢!!!!!!!

回答

1

您可以更新的选项时,文件准备就绪:

jQuery(function() { 
jQuery('#option1').hide(); 
jQuery('#option2').hide(); 
}); 

function updateOption() { 
    jQuery('#option1').toggle(this.value == '55'); 
    jQuery('#option2').toggle(this.value == '59'); 
} 

jQuery(document).ready(function() { 
    jQuery("#SPCatChooserSl").each(updateOption); 
    jQuery("#SPCatChooserSl").change(updateOption); 
}); 

小提琴:http://jsfiddle.net/Mwnjk/

+0

这就像一个魅力非常感谢你的帮助,并快速回答! – user1737711