无法在wicket中的ajax按钮上调用click事件

时间:2017-06-13 17:30:06

标签: java jquery html ajax wicket

我有一个'保存'按钮,这是一个AjaxButton,我试图以编程方式调用点击。我有一个链接,我想用它来调用这个按钮的处理程序。在我的AjaxLink中,我像这样附加ajax:

target.appendJavaScript("$('#save-irs1095c-button').click();");

当调用这段代码时,wicket抛出以下异常

enter image description here

然而,当我检查时,事实上已启用该行为。见下文: enter image description here

所以,我的问题是,可能导致此错误的原因是什么,并且可以通过这种方法以编程方式调用我的“保存”#39;没有实际点击的按钮? 我已经离开了我的组件的默认表单处理,所以这个ajax按钮现在充当我的提交。以下是Ajax Button的代码:

new AjaxButton("save-modal", coveredForm) {
    /**
     * 
     */
    private static final long serialVersionUID = 1975475919740938717L;

    public void onSubmit(AjaxRequestTarget target, Form<?> myForm)
    {
        //form submission method

        dataProvider.getIrs1095cSummaryPktManager().save(coveredModel.getObject());

        target.add(EmployeeDetailPanel.this);
    }
}

这是我要点击的链接的代码,然后以编程方式调用所述Ajax按钮:

new AjaxLink<Object>("label-ee-name-link") {
    /**
     * 
     */
    private static final long serialVersionUID = 6360058776603040349L;

    @Override
    public void onClick(AjaxRequestTarget target) {

        EmployeeDetailPanel.this.setEEInfoShowing();

        logr.log(Level.FINER,"save button visible: " + coveredForm.get("save-modal").isVisible());
        logr.log(Level.FINER, "save button enabled: " + coveredForm.get("save-modal").isEnabled());

        List<Behavior> bList = (List<Behavior>)((AjaxButton)coveredForm.get("save-modal")).getBehaviors();

        if(bList != null ? !bList.isEmpty() : false)
        {
            for(Behavior b : bList)
            {
                logr.log(Level.FINER, "Behavior: " + b.toString() + " is enabled: " + b.isEnabled(coveredForm.get("save-modal")));                  
            }
        }

        target.appendJavaScript("$('#save-irs1095c-button').click();");
    }
}

如您所见,我正在检查组件是否可见,已启用,以及是否已启用其行为。

以下是Ajax按钮的html代码段,后面是链接的代码段:

<div class="col-lg-10 col-lg-offset-1 text-center">
    <button class="btn btn-primary" wicket:id="back-to-ee-info">Back</button>
    <button id="save-irs1095c-button" class="btn btn-primary" type="submit" wicket:id="save-modal">Save</button>
    <button class="btn btn-primary" wicket:id="show-notes-button">Notes</button>
</div>  


<h4 class="modal-title"><a href="" wicket:id="label-ee-name-link"><label wicket:id="emp-name"></label></a></h4>

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

看来这个组件的一些父母是不可见的。附加调试器,并在执行false时查看哪一个返回isVisibleInHierarchy()