Content management system ExpressionEngine:在通道输入表单中有条件地显示自定义字段
我正在用ExpressionEngine建立一个博客网站。我有两种类型的条目要保留在同一频道中。当选择某个类别时,我希望显示其他字段Content management system ExpressionEngine:在通道输入表单中有条件地显示自定义字段,content-management-system,blogs,categories,expressionengine,Content Management System,Blogs,Categories,Expressionengine,我正在用ExpressionEngine建立一个博客网站。我有两种类型的条目要保留在同一频道中。当选择某个类别时,我希望显示其他字段 **EXAMPLE Channel > Article Fields: - Title - Post Body - Image - Tags Additional Fields for a category: - Price - Product Bio 这
**EXAMPLE
Channel > Article
Fields:
- Title
- Post Body
- Image
- Tags
Additional Fields for a category:
- Price
- Product Bio
这可能吗?您希望在控制面板或站点前端执行此操作吗?要使用类别作为触发器执行此操作,您需要编写一个自定义扩展,添加javascript以执行显示和隐藏操作
您可能需要查看该插件,它允许您使用下拉菜单更改显示的字段。您对JavaScript的理解程度如何?你可以使用分机。然后使用一点自定义javascript来构建该功能。不完美,但可能比编写自定义扩展快。大致上,您可以这样做:
$(文档).ready(函数(){
//使用频道字段缓存div
变量$TheCretfields=$(“#保持#字段#5,#保持#字段#6”);
//藏起来
$TheCretFields.each(函数(){
//但前提是它们为空(没有以前保存的数据)
//如果您使用的是文本区域或其他内容,请更改.find选择器
if($(this.find('input').val()==''){$(this.hide()};
});
//单击类别ID(输入[value=“ID”]选择器)时。。。
$(“#保持_字段_类别”)。查找('input[value=“12”]”)。单击(function(){
//切换通道字段的可见性
//同样,仅当它们为空时才显示/隐藏它们
$TheCretFields.each(函数(){
//如有必要,再次更改字段类型的.find选择器
if($(this).find('input').val()==''){$(this.toggle()};
});
});
};
您可能需要在单击处理程序中构建更多的逻辑,以确保字段仅在选中复选框时显示(除其他外),但这是基本思想。您还需要确保在编辑保存的条目时,如果字段包含以前保存的数据,则不会隐藏这些字段。但这是正确的路径!好主意!我为该逻辑添加了一个开始。