所以我想在页面加载后将光标位置设置到文本框的末尾。我有这个JQuery的代码:
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="https://rawgit.com/ichord/Caret.js/master/src/jquery.caret.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var textbox = $('#MessagesBox');
textbox.focus();
textbox.caret('pos', textbox.val().length);
});
</script>
<asp:TextBox ID="MessagesBox" runat="server" TextMode="MultiLine"
style="resize:none" ReadOnly="true" Width="300" Height="200"></asp:TextBox>
我错过了什么?我是否还需要在代码存储中设置一些内容?
答案 0 :(得分:2)
您的问题是文本框的ID不会保留MessagesBox,因为它是服务器控件。 ASP.NET更改它并为其提供客户端ID。您需要使用客户端ID或使用其他属性来标识jquery中的文本框。您可以使用Chrome中的Inspect元素验证控件的名称。
您可以使用它来通过其客户端ID
来识别控件var textbox = $("#'<%=MessagesBox.ClientID %>'");
或者,您可以访问服务器端的控件的客户端ID,然后可以使用该客户端ID从服务器创建和注册脚本。
答案 1 :(得分:0)
试试这个:
$(document).ready(function(){
var el = $("#MessagesBox");
var elemLen = el.value.length;
el.selectionStart = elemLen;
el.selectionEnd = elemLen;
el.focus();
});