2014-07-09 34 views
1

我有我的CQ dialog.xml如何通过cq.ext.button处理程序将变量传递给javascript函数?

<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

按钮的处理函数receves 2个参数,按钮b和的EventObject e

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

修改后的处理程序函数会

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

欲了解更多信息,请参阅widget docs

相关问题