-1

如何检查光标位置是在文本的前面还是文本的最后。

<script  type="text/javascript">
    $(document).ready(function () {
        $('input').keyup(function (e) {
            if (e.which == 39 && <CURSOR IS FIRST OR LAST OF TEXT>)  {
                alert($('input').val);
                $(this).closest('td').next().find('input').focus();
                $(this).closest('td').next().find('input').select();
            }
         }
      }
<script>


<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>

<script  type="text/javascript">
$(document).ready(function () {
    $('input').keyup(function (e) {
        if (e.which == 39 && <selected text lenght> > 0)  {
            $(this).closest('td').next().find('input').focus();
            $(this).closest('td').next().find('input').select();
        }
        else if (e.which == 37) {
            $(this).closest('td').prev().find('input').focus();
            $(this).closest('td').prev().find('input').select();
        }
        else if (e.which == 40) {
            $(this).closest('tr').next().find('td:eq(' + $(this).closest('td').index() + ')').find('input').focus();
            $(this).closest('tr').next().find('td:eq(' + $(this).closest('td').index() + ')').find('input').select();
        }
        else if (e.which == 38) {
            $(this).closest('tr').prev().find('td:eq(' + $(this).closest('td').index() + ')').find('input').focus();
            $(this).closest('tr').prev().find('td:eq(' + $(this).closest('td').index() + ')').find('input').select();
        }
    });
});

4

1 回答 1

2

您可以使用 jQuery Caret 插件。在此处查看此线程插件的主页。然后,您可以将代码更改为:

var pos= $(this).caret().start == $(this).caret().end ? $(this).caret().start : -1;
if (e.which === 39 && (pos === 0 || pos === $(this).val().length)) {
...

希望它有所帮助,Shakib

于 2012-11-10T17:43:04.547 回答