【问题标题】:Checkbox indeterminate state for richfaces treeRichfaces 树的复选框不确定状态
【发布时间】:2015-11-02 07:54:24
【问题描述】:

我有richfaces4树,每个节点都有复选框,现在我需要处理复选框状态

  • 已选中(复选标记),
  • 未选中(空),
  • 部分选中(全方形)。

我需要通过 jquery 或 javascript 代码处理这些状态。每当任何复选框单击叶节点并更改父节点复选框状态时,jquery/javascript 方法都应触发。 下面是我尝试过的 jquery 代码,但它仅适用于一种情况,即检查父节点时所有子节点都处于检查状态。

$('input[type="checkbox"]').change(function(e) {
      var checked = $(this).prop("checked"),
      container = $(this).parent().parent().parent().parent();
      container.find('input[type="checkbox"]').prop({
      indeterminate: false,
      checked: checked
 });

JSF 代码

<rich:tree id="tree" nodeType="#{node.type}" var="node"
           value="#{treeBean.rootNodes}" toggleType="client"
           selectionType="ajax" toggleNodeEvent="click"
           selectionChangeListener="#{treeBean.selectionChanged}">
  <rich:treeNode type="country" id="country" onclick="" handleClass="even odd">
    <h:selectBooleanCheckbox class="small" value="true" />
    #{node.name}
  </rich:treeNode>
  <rich:treeNode type="company" id="company" handleClass="even odd">
    <h:selectBooleanCheckbox class="small" value="true" />
    #{node.name}
  </rich:treeNode>
  <rich:treeNode type="cd" id="cd">
    <h:selectBooleanCheckbox class="small" handleClass="even odd"/>
    #{node.artist} - #{node.name} - #{node.year}
  </rich:treeNode>
</rich:tree>

为了处理不确定的状态,我使用下面的代码 sn-p 添加 jquery 以在输入复选框标记后添加跨度标记

$.fn.checkbox = function ()	{
		$("input[type=checkbox]").each(function(){
			if(!$(this).next().hasClass('mycheckBox')){
				$(this).after("<span class=mycheckBox></span>")
			}                                                       
		});
	}

通过 CSS,我正在处理复选框的所有三种状态的样式。

【问题讨论】:

  • 写一些js代码。
  • 你的问题不清楚。

标签: javascript jquery jsf richfaces


【解决方案1】:

试试.rf-trn-ico-cst,关注the class documentationcustomizing

也就是说,你的问题很难理解,让我们澄清几点:

树节点是(取决于样式):

  • 已选中(复选标记),
  • 未选中(空),
  • 部分选中(全方形)。

你叫indeterminate是后者吗?

示例(该图片不是实际的 Richface 树):

主题编辑后

已经有一个关于这个的自我回答的话题,但我强烈不鼓励你这样做https://stackoverflow.com/a/6237015/2375207(一个 ajax 查询 foreach click 只是为了状态)

其他要阅读的主题,未解决但提供了成功的线索:

我担心 jsf 复选框是一个布尔值(只能激活或不激活,不可能获得部分状态),你能告诉我们你的 jsf 代码吗?

是否可以使用另一个库来呈现像 https://www.jstree.com/ 这样的复选框树?

【讨论】:

  • 是的,我需要实现这个实现,每当单击任何节点复选框时,父节点复选框都应该改变那里的状态。我如何使用 javascript 或 jquery 来处理此复选框状态
猜你喜欢
  • 2011-05-09
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多