jQuery文本框光标移动到文本末尾?

8

我正在尝试使用jQuery来替换文本框中文本末尾的光标,这是在用户按“Enter”键后完成的。

我已经实现了“Enter”部分 - 但是我不知道如何在“Enter”之后将光标返回到文本框内输入文本的末尾?

也就是说,目前当用户按下Enter键时,光标会跳到新行,我希望它基本上跳到当前文本的末尾?

一些代码:

jQuery('#textbox').keyup(function (e) {
        if (e.keyCode == 13) {
            ... submits textbox
        }
        jQuery(this).focus(function() {
          var val = this.input.value; //store the value of the element
          this.input.value = ''; //clear the value of the element
          this.input.value = val; //set that value back.  
        )};    
});

你有链接或者一些我们可以查看的样例吗?我的第一个猜测是防止默认行为,但我不能确定。 - sdleihssirhc
我找到了这个 - https://dev59.com/JXRB5IYBdhLWcg3wyqKo - 不过不确定有没有帮助? - Tom
我指的是你自己做过的东西。你的问题让人觉得你已经写了一些实际的代码。我们能看到那个吗? - sdleihssirhc
1个回答

6

如果你只是想防止“回车”键创建新行,你可以使用preventDefault来阻止它。

$("textarea").keypress(function (event) {
    if (event.which == '13') {
        event.preventDefault();
    }
});

fiddle

如果您想在输入框中按下回车键时无论在哪里都能跳到输入框的末尾,您可以重置输入框的值,这样光标就会始终位于输入框的末尾:

$("textarea").keypress(function (event) {
    if (event.which == '13') {
        var val = $(this).val();       
        $(this).val('');
        $(this).val(val);
        event.preventDefault();
    }
});

嘿,戴夫 - 太好了,谢谢,这个有效 :) 我认为只有 preventDefault(); 对我来说就可以了,但是加上第二个也加一分。 - Tom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接