gpt4 book ai didi

java - Wicket ajax 控件更新行为重叠

转载 作者:行者123 更新时间:2023-11-30 07:54:34 25 4
gpt4 key购买 nike

我在 TextField 和 AjaxButton 上有两个 Wicket Ajax 更新行为。

textField.add(AjaxFormComponentUpdatingBehavior("onchange") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
onTextFieldUpdate();
}
});
ajaxButton = new AjaxButton("accept"){
@Override
protected void onSubmit(AjaxRequestTarget target, Form form) {
onAjaxSubmited();
}
});

我有2个进程:

  • 将值设置为 textField 并单击另一个组件而不是 ajaxButton:调用 onTextFieldUpdate()
  • 将值赋给 textField 并单击 ajaxButton:调用 onTextFieldUpdate() 和 onAjaxSubmited()。 onTextFieldUpdate() 在 onAjaxSubmited() 之前调用。

    我需要第二个进程的解决方法来仅调用 onAjaxSubmited(),而不是 onTextFieldUpdate()。

    尝试使用 document.activeElement,但没有帮助。

    有什么想法吗?

最佳答案

您可以将 AjaxRequestAttributes 用于 AjaxFormComponentUpdatingBehavior 和 AjaxButton。请参阅http://wicketinaction.com/2012/07/wicket-6-javascript-improvements/ .

我的想法是:

  • 行为:attributes.setThrottleSettings(一些毫秒)。这样“change”事件将在“some millis”后触发
  • 按钮:attributes.getAjaxCallListeners().add(new AjaxCallListener().onBeforeSend("$('#txtField').data('suppress', true)"))
  • 行为:attributes.getAjaxCallListeners().add(new AjaxCallListener().onPrecondition("return $('#txtField').data('suppress')"))

希望你能关注我。请参阅https://ci.apache.org/projects/wicket/guide/7.x/guide/ajax.html#ajax_5了解更多信息。

关于java - Wicket ajax 控件更新行为重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32837608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com