WICKET-4529 AjaxEditableLabel not selecting text or moving cursor on Firefox 11.0 or Safari 5.0.5
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b35fa597 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b35fa597 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b35fa597 Branch: refs/heads/wicket-1.5.x Commit: b35fa59725a42995a8bc284d7b540d7ecb3d4fd0 Parents: 0c79034 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Wed May 16 09:42:33 2012 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Wed May 16 09:42:33 2012 +0200 ---------------------------------------------------------------------- .../ajax/markup/html/AjaxEditableLabel.java | 14 ++++++-------- 1 files changed, 6 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/b35fa597/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java index d1be6dd..09ed883 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java @@ -450,12 +450,9 @@ public class AjaxEditableLabel<T> extends Panel label.setVisible(false); editor.setVisible(true); target.add(AjaxEditableLabel.this); - // put focus on the textfield and stupid explorer hack to move the - // caret to the end - target.appendJavaScript("{ var el=wicketGet('" + editor.getMarkupId() + "');" + - " if (el.createTextRange) { " + - " var v = el.value; var r = el.createTextRange(); " + - " r.moveStart('character', v.length); r.select(); } }"); + String selectScript = String.format("(function(){var el = Wicket.$('%s'); if (el.select) el.select();})()", + editor.getMarkupId()); + target.appendJavaScript(selectScript); target.focusComponent(editor); } @@ -473,8 +470,9 @@ public class AjaxEditableLabel<T> extends Panel target.appendJavaScript("window.status='" + JavaScriptUtils.escapeQuotes(errorMessage.toString()) + "';"); } - target.appendJavaScript("{var el=wicketGet('" + editor.getMarkupId() + - "'); el.select(); el.focus();}"); + String selectAndFocusScript = String.format("(function(){var el=Wicket.$('%s'); if (el.select) el.select(); el.focus();})()", + editor.getMarkupId()); + target.appendJavaScript(selectAndFocusScript); } /**
