-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

jQueryCaretプラグインを使用できます。こちらのスレッドプラグインのホームページを確認してください。次に、コードを次のように変更できます。

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

お役に立てば幸い、シャキブ

于 2012-11-10T17:43:04.547 に答える