フォームにテキストエリアとボタンがあります。textareaには、すでにテキストが含まれている場合があります。ボタンをクリックしたときに、カーソルをテキスト領域の最後の位置に移動させたいのですが。
これは可能ですか?
フォームにテキストエリアとボタンがあります。textareaには、すでにテキストが含まれている場合があります。ボタンをクリックしたときに、カーソルをテキスト領域の最後の位置に移動させたいのですが。
これは可能ですか?
xgMzの答えは私にとって最高でした。ブラウザについて心配する必要はありません。
var html = $("#MyTextArea").val();
$("#MyTextArea").focus().val("").val(html);
そして、これは私が次回のためにこれを行うために書いた簡単な jQuery 拡張機能です。
; (function($) {
$.fn.focusToEnd = function() {
return this.each(function() {
var v = $(this).val();
$(this).focus().val("").val(v);
});
};
})(jQuery);
次のように使用します。
$("#MyTextArea").focusToEnd();
これを使用できますhttps://github.com/DrPheltRight/jquery-caret
$('input').caretToEnd();
これは、onclickまたはその他のイベント内のテキストエリアに使用するものであり、FireFoxおよびIE 7&8では正常に機能するようです。カーソルをテキストの前ではなく最後に配置します。
this.value = "some text I want to pre-populate";
this.blur();
this.focus();
マウス フォーカスを設定し、カーソルを入力の最後に移動します。すべてのブラウザで機能します。ここでは単純なロジックです。
input.focus();
tmpStr = input.val();
input.val('');
input.val(tmpStr);
デフォルト値をサポートするために @mkaj 拡張子を少し変更しました
; (function($) {
$.fn.focusToEnd = function(defaultValue) {
return this.each(function() {
var prevValue = $(this).val();
if (typeof prevValue == undefined || prevValue == "") {
prevValue = defaultValue;
}
$(this).focus().val("").val(prevValue);
});
};
})(jQuery);
// See it in action here
$(element).focusToEnd("Cursor will be at my tail...");