【问题标题】:How to apply JQuery selector to Wicket ModalWindow如何将 JQuery 选择器应用于 Wicket ModalWindow
【发布时间】:2011-06-02 21:27:56
【问题描述】:

我正在使用一种漂亮的新 show-your-password-single-char JQuery hack,我可以将其应用于页面上的所有密码字段

<script type="text/javascript">
  $(document).ready( function() {
    $('input:password').dPassword();
  });
</script>

但我的更改密码对话框是在 Wicket ModalWindow 中呈现的,

final ModalWindow window = new ModalWindow("change-password-panel");
final PasswordChangePanel panel = new PasswordChangePanel(window, myPasswordValidator);
window.setContent(panel);
add(window);
add(new AjaxFallbackLink<String>("change-password") {
    @Override public void onClick(AjaxRequestTarget target) {
        window.show(target);
    }});

所以它不在 document.ready 上。

当我的 ModalWindow 已显示时,如何安排重新运行 JQuery 选择器?

【问题讨论】:

    标签: java jquery wicket


    【解决方案1】:

    尝试在 AJAX 调用完成后发回一些 JS 以运行:

    add(new AjaxFallbackLink<String>("change-password") {
        @Override 
        public void onClick(AjaxRequestTarget target) {
            target.appendJavascript("$('input:password').dPassword();")
            window.show(target);
        }
    });
    

    最好将选择器的范围限制在您的模态窗口中,但我需要查看代码才能做到这一点。 ;)

    【讨论】:

    • 非常好 - 我以为我已经尝试过了,但经过反思,我显然没有做到这一点。谢谢,如果您认为这个问题有用,请投票。
    • 你知道,我也有另一个想法。您可能可以像这样修改代码:"$('#" + window.getMarkupId() + " input:password').dPassword();" 作为约束选择器的一种方式。
    猜你喜欢
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多