Java 如何在ApacheWicket中向DropDownChoice添加“onchange”SimpleAttributeModifier

Java 如何在ApacheWicket中向DropDownChoice添加“onchange”SimpleAttributeModifier,java,javascript,wicket,dropdownchoice,Java,Javascript,Wicket,Dropdownchoice,我想在下拉选项中更改选择时运行特定的javascript,因此我添加了一个简单的属性修饰符,如下所示: ddc.add(new SimpleAttributeModifier("onchange", "calc();")); 但如果我这样做,它会完全覆盖wicket onSelectionChanged方法。 我需要一种方法来实现这两个目标 谢谢您可以使用AttributeAppender ddc.add(new AttributeAppender("onchange", "calc();",

我想在下拉选项中更改选择时运行特定的javascript,因此我添加了一个简单的属性修饰符,如下所示:

ddc.add(new SimpleAttributeModifier("onchange", "calc();"));
但如果我这样做,它会完全覆盖wicket onSelectionChanged方法。 我需要一种方法来实现这两个目标


谢谢

您可以使用AttributeAppender

ddc.add(new AttributeAppender("onchange", "calc();", " "));

最后一个参数是使用的分隔符。

您可以使用AttributeAppender

ddc.add(new AttributeAppender("onchange", "calc();", " "));
最后一个参数是所使用的分隔符。

使用一个这样的参数:

    ddc.add(new OnChangeAjaxBehavior() {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            target.appendJavaScript("calc();");
        }
    });
使用类似于以下内容的

    ddc.add(new OnChangeAjaxBehavior() {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            target.appendJavaScript("calc();");
        }
    });

是的,但我觉得罗伯特·尼斯特罗的答案更优雅,请接受其中一个答案作为解决方案,这样其他人就知道什么是有效的。我喜欢第一个答案,因为它只有一行:黛雅,但我觉得罗伯特·尼斯特罗的答案更优雅,请接受其中一个答案作为解决方案,所以其他人知道什么有效。我喜欢第一行,因为它只有一行:D