Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在AjaxLink(Wicket)的onSubmit方法中调用Ajaxdecorator或javascript_Javascript_Ajax_Wicket - Fatal编程技术网

如何在AjaxLink(Wicket)的onSubmit方法中调用Ajaxdecorator或javascript

如何在AjaxLink(Wicket)的onSubmit方法中调用Ajaxdecorator或javascript,javascript,ajax,wicket,Javascript,Ajax,Wicket,这是我的代码。在单击的方法中,我调用ajax onfailure脚本。但它不起作用 我尝试在构造器中添加javascript。它也不起作用 问题是什么 注:我称之为ajaxdecorator-like public class engageLink extends AjaxLink{ private Engage engage; private String name; engageLink(String string, Engage anEngage,String n

这是我的代码。在单击的方法中,我调用ajax onfailure脚本。但它不起作用

我尝试在构造器中添加javascript。它也不起作用

问题是什么

注:我称之为ajaxdecorator-like

public class engageLink extends AjaxLink{
    private Engage engage;
    private String name;

    engageLink(String string, Engage anEngage,String name) {
        super(string);
        this.engage = anEngage;
        this.name = name;
        hasEngage=((Application) getApplication()).getVtb().hasEngagement(engage,name);
        if(hasEngage)
            this.add(new AttributeAppender("onclick", new Model("alert('This is my JS script');"), ";"));
    }
    boolean randevuAlmis;


    @Override
    public void onClick(AjaxRequestTarget target) {

         if(hasEngage){
              //do nothing or call ajax on failure script
         } else{
                 ((Application) getApplication()).getVtb().addEngagement(engage, name);
         }
         setResponsePage(new Sick(name));
    }
        @Override
            protected org.apache.wicket.ajax.IAjaxCallDecorator getAjaxCallDecorator()
            {
                return new AjaxCallDecorator()
                {
                    @Override
                    public CharSequence decorateOnSuccessScript(CharSequence script)
                    {
                        return "alert('Success');";
                    }

                    @Override
                    public CharSequence decorateOnFailureScript(CharSequence script)
                    {
                        return "alert('Failure');";
                    }



                };
            };
}
我怎样才能解决这些问题


谢谢

您正在尝试调用失败脚本而不失败吗?如果是这样,你可以打电话:

getAjaxCallDecorator().decorateOnFailureScript("some message");


但是,如果您在onClick()方法的末尾调用setResponsePage(),我认为这可能会阻止任何脚本的执行,因为您正在重定向到另一个页面,而不是简单地执行ajax响应。

您是否尝试在没有失败的情况下调用失败脚本?如果是这样,你可以打电话:

getAjaxCallDecorator().decorateOnFailureScript("some message");


但是,您在onClick()方法的末尾调用setResponsePage(),我认为这可能会阻止任何脚本的执行,因为您正在重定向到另一个页面,而不是简单地执行ajax响应。

首先感谢家伙,它们不起作用。后来我将setResponsePage行移到else语句中。结果非常好。非常感谢感谢家伙,首先它们不起作用。后来我将setResponsePage行移到else语句中。结果非常好。谢谢非常地
target.appendJavascript(getAjaxCallDecorator().decorateOnFailureScript("some message"));