首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以禁用一组单选按钮中的一个选项?

是否可以禁用一组单选按钮中的一个选项?
EN

Stack Overflow用户
提问于 2011-11-14 11:59:36
回答 1查看 510关注 0票数 3

我有一个单选按钮控件,里面有两个项目。

代码语言:javascript
运行
复制
<xforms:select1 ref="add-delete" appearance="full">
    <xforms:item>
        <xforms:label>Add</xforms:label>
        <xforms:value>A</xforms:value>
    </xforms:item>
    <xforms:item>
        <xforms:label>Delete</xforms:label>
        <xforms:value>D</xforms:value>
    </xforms:item>
</xforms:select1>

我只想禁用条件X上的单选按钮'Delete‘而不是单选按钮'Add’。我该如何执行此操作?

我尝试将class属性与xforms:item一起使用,但这不起作用。有没有其他方法可以做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-15 08:03:46

问得好。不幸的是,这并不像它应该做的那么容易:

如果您只想隐藏删除单选按钮,而不是禁用该单选按钮,您可以将“删除”的<xforms:item>替换为一个<xforms:itemset ref="…">,当您不想显示该单选按钮时,您可以将该not绑定到一个不相关的节点。但是,您不能使用相同的技术通过将项目集绑定到您设置为只读的节点来禁用单选按钮。(是的,如果你能做到这一点,那就太好了。)

按照现在的情况,我认为你需要:

  1. 创建2个<xforms:select1>。一个用于“添加”,一个用于“删除”,这样你就可以在某些条件下将第二个设置为只读。
  2. 要将其设置为只读,但不将“添加”设置为只读,你需要将它们绑定到两个单独的节点上。
  3. 如果你想有一个包含A或D的节点,你需要创建一个计算来根据这两个值填充该节点。
  4. 你希望这些值是独占的,如果你有两个<xforms:select1>,它们就不是独占的。因此,当选择了对xforms-select做出反应的“添加”时,需要取消选择“删除”,反之亦然。

在模型中,您将拥有:

代码语言:javascript
运行
复制
<xforms:instance>
    <instance>
        <add/>
        <delete/>
        <add-delete/>
        <delete-enabled>true</delete-enabled>
    </instance>
</xforms:instance>
<xforms:bind ref="add-delete" calculate="string-join((../add, ../delete), ' ')"/>
<xforms:bind ref="delete" readonly="../delete-enabled = 'false'"/>

在视图中:

代码语言:javascript
运行
复制
<xforms:select1 ref="instance()/add" appearance="full">
    <xforms:item>
        <xforms:label>Add</xforms:label>
        <xforms:value>A</xforms:value>
    </xforms:item>
    <xforms:setvalue ev:event="xforms-select" ref="instance()/delete"/>
</xforms:select1>
<xforms:select1 ref="instance()/delete" appearance="full">
    <xforms:item>
        <xforms:label>Delete</xforms:label>
        <xforms:value>D</xforms:value>
    </xforms:item>
    <xforms:setvalue ev:event="xforms-select" ref="instance()/add"/>
</xforms:select1>

有关此示例的完整源代码,请参阅this Gist

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8117157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档