如何通过cq.ext.button处理程序将变量传递给javascript函数?

时间:2014-07-09 11:10:14

标签: extjs cq5

我的CQ dialog.xml

中有以下代码
<toolbar
jcr:primaryType="cq:Widget"
xtype="toolbar">
<items
    jcr:primaryType="cq:WidgetCollection">
    <input
        jcr:primaryType="cq:Widget"
        xtype="textfield"
        name="./myInput">
    </input>
    <button
        jcr:primaryType="cq:Widget"
        xtype="button"
        name="./myButton"
        text="Submit" handler ="function() {passMyInput()};">
    </button>
</items>

我已经实现了函数passMyInput(),如下所示:

passMyInput(){ alert("test");}

这很好用。我的问题是如何将./myInput的值传递给function passMyInput

我已经尝试了handler ="function() passMyInput('./myInput')};",但它不起作用

1 个答案:

答案 0 :(得分:1)

按钮的处理函数接收2个参数,按钮b和eventObject e

我们可以通过按钮获取容器对话框,然后使用getField()方法获取字段的值。

修改后的汉德函数将是

function(b, e) {
    var dlg = b.findParentByType('dialog');
    var val = dlg.getField('./myInput').getValue();
    passMyInput(val);
}

有关详细信息,请参阅widget docs