处理所有DevExtreme输入小部件的更改事件

时间:2018-08-02 15:32:00

标签: javascript jquery devexpress devextreme

我正在寻找一种跟踪表单字段是否已使用DevExtreme组件进行修改的方法。我以为我可以用一个事件监听器将它们全部绑定:

$('input').change(function () {
    console.log("Change detected.");
});

尽管这会触发普通的<input>元素,但DevExtreme组件(它们全部使用基础的隐藏<input>元素)不会触发。组件具有一个onValueChanged字段,可以为该字段分配一个功能,但是其思想是不必对每个控件都执行此操作。我的表单中包含数十个dxTextBoxdxSelectBoxdxDateBox等。

2 个答案:

答案 0 :(得分:1)

  

使用委托()方法附加的事件处理程序将同时适用于当前和FUTURE元素(如脚本创建的新元素)。

对于这种用法,我建议使用jQuery Delegate,即使已弃用它也会有所帮助。

答案 1 :(得分:1)

DevExtreme小部件提供了defaultOptions(rule)方法,该方法允许为特定组件设置默认配置选项。

例如:

DevExpress.ui.dxTextBox.defaultOptions({ 
    device: { deviceType: "desktop" },
    options: {
        onValueChanged: function(e) {
           console.log("Change detected.");
        }
    }
});