2

ボタンが押されたときにカーソルが次のようになるようにする必要があります。

1) 文末を見つける 2) カーソルを文末から後ろに移動する "x" スペース (x は変数);

ここにフィドルがあります-----> jsFiddle <------

HTML

<span>From the end, move the cursor back this many spaces: </span>
<input type='text'   id='num' size='5'/>
<button>Submit</button>
<br/><br/>
<textarea>The cursor will move in here</textarea>

jQuery

$(document).ready(function() {
  $('button').click(function() {
   var myval = parseInt($('#num').val()); //the number of spaces to move back
    //code to move cursor back - starting from the END OF THE STATEMENT
  });
});
4

1 に答える 1

3

あなたはそうするでしょう:

$(document).ready(function() {
    $('button').click(function() {
        var el      = $('textarea')[0],
            myval   = parseInt($('#num').val(), 10),
            cur_pos = 0;

        if (el.selectionStart) { 
            cur_pos = el.selectionStart; 
        } else if (document.selection) { 
            el.focus(); 

            var r = document.selection.createRange(); 
            if (r != null) {
                var re = el.createTextRange(), 
                    rc = re.duplicate(); 
                re.moveToBookmark(r.getBookmark()); 
                rc.setEndPoint('EndToStart', re); 

                cur_pos = rc.text.length; 
            }
        }  

        if (el.setSelectionRange) {
            el.focus();
            el.setSelectionRange(cur_pos-myval, cur_pos-myval);
        }
          else if (el.createTextRange) {
            var range = el.createTextRange();
            range.collapse(true);
            range.moveEnd('character', cur_pos-myval);
            range.moveStart('character', cur_pos-myval);
            range.select();
        }
    });
});

フィドル

于 2013-07-14T03:23:11.320 に答える