我有一个对话框选择框。我需要检查我使用属性defaultValue提供的默认值以及我从选择框获得的值是否相等!
因此,要获得选定的价值,我们可以这样:
function(dialog){
var selection = dialog.getField("<property name>");
var selectedValue = selection.value;
}
现在,如何使用 defaultValue 属性作为名称在javascript中获取价值?
答案 0 :(得分:1)
查看ExtJS Selection widget的文档,您应该可以将defaultValue
作为简单属性进行访问。
这种快速而肮脏的测试似乎证实了这一点。每当我选择一个值时,它会输出dog
。看看selectionchanged
监听器,看看如何访问该值(并且请不要像我一样将console.log
放在监听器中,这只是我运行它并查看它的最快方式; D)
<animal
jcr:primaryType="cq:Widget"
allowBlank="true"
defaultValue="dog"
fieldLabel="Animal"
name="./animal"
type="select"
xtype="selection">
<options jcr:primaryType="cq:WidgetCollection">
<dog
jcr:primaryType="nt:unstructured"
text="Dog"
value="dog"/>
<cat
jcr:primaryType="nt:unstructured"
text="Cat"
value="cat"/>
<mouse
jcr:primaryType="nt:unstructured"
text="Mouse"
value="mouse"/>
</options>
<listeners
jcr:primaryType="nt:unstructured"
selectionchanged="function(selection, value) {console.log(selection.defaultValue)}"
</listeners>
</animal>
要专门解决您的示例,您使用dialog.getField("name");
来获取该字段。
Dialog#getField
会返回Field
或Field[]
(字段数组)对象,具体取决于与名称匹配的字段数。
另一方面,CQ.ext.form.Field
也应该有一个defaultValue
。
如果你不能只在你发布的代码中访问selection.defaultValue
,我想selection
实际上是一个你必须迭代的数组,或者配置错误您的对话框(请查看dialog.xml
并确保defaultValue
实际上位于正确的级别。