gpt4 book ai didi

checkbox - AEM/CQ : Checkbox is checked saves a Boolean value of TRUE, 如果取消选中,如何将 boolean 值保存为 FALSE?

转载 作者:行者123 更新时间:2023-12-02 21:41:55 24 4
gpt4 key购买 nike

例如,我创建了一个具有以下属性的复选框

<checkbox1
jcr:primaryType="cq:Widget"
checked="false"
defaultValue="false"
fieldLabel="Sample"
inputValue="true"
name="./sample"
checkboxBoolTypeHint="{Boolean}true"
type="checkbox"
xtype="selection">
<listeners
jcr:primaryType="nt:unstructured"
check="function(isChecked){var panel = this.findParentByType('panel'); var fields = panel.find('name', './sample'); for (var i=0;i&lt;fields.length; i++) {if (fields[i].xtype == 'hidden') { if (isChecked.checked) {fields[i].setDisabled(true);} else {fields[i].setDisabled(false);}}}}"/>

</checkbox1>
<hiddenCheckbox1
jcr:primaryType="cq:Widget"
disabled="{Boolean}true"
ignoreData="{Boolean}true"
name="./sample"
value="{Boolean}false"
xtype="hidden"/>

如果我们选中/启用该复选框,它将显示属性“Sample”,如下所示 示例 boolean 值 true(工作正常)如果我们取消选中/禁用该复选框,则它不会显示属性“Sample”

期望:如果我们取消选中/禁用复选框,我想显示示例 boolean 值 false

最佳答案

您可能需要查看Sling POST Servlet 的文档。当您提交对话框时将调用此 servlet。它有一个名为后缀的东西,您可以在对话框中使用它来为 POST Servlet 提供一些有关您的字段正在执行的操作的提示。

例如,这样的后缀是 @UseDefaultWhenMissing 后缀,它应该正是您正在寻找的内容。

来自文档:

As described above, @DefaultValue only takes effect if no value is provided for a particular parameter. However, in some cases, such as HTML checkboxes, this isn't sufficient because the parameter isn't submitted at all. To handle this scenario, you can use the @UseDefaultWhenMissing suffixed parameter.

<form method="POST" action="/content/page/first" enctype="multipart/form-data">
<input name="queryIgnoreNoise" class="input" type="checkbox" value="true"/>
<input type="hidden" name="queryIgnoreNoise@DefaultValue" value="false"/>
<input type="hidden" name="queryIgnoreNoise@UseDefaultWhenMissing" value="true"/>
</form>

因此,您需要在对话框定义中添加两个额外的隐藏字段:

<checkbox1DefaultValue
jcr:primaryType="cq:Widget"
name="./sample@DefaultValue"
value="{Boolean}false"
xtype="hidden"/>
<checkbox1UseDefaultWhenMissing
jcr:primaryType="cq:Widget"
name="./sample@UseDefaultWhenMissing"
value="{Boolean}true"
xtype="hidden"/>

密切注意字段的名称:

./sample@DefaultValue./sample@UseDefaultWhenMissing

它是复选框的名称 (sample) 加上两个必需后缀的名称:@DefaultValue@UseDefaultWhenMissing

您可以在 Sling 文档中阅读更多不错的后缀:

https://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html

关于checkbox - AEM/CQ : Checkbox is checked saves a Boolean value of TRUE, 如果取消选中,如何将 boolean 值保存为 FALSE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44286770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com