0

コードに問題があります。各 Enter キーに「-」を挿入する必要があります。ここに私の jQuery と jsfiddle があります。

$("#textbox").on("keydown", function(e) {
      if(e.which == 13){
        var $this = $(this);
        setTimeout(function(){
          $this.insertAtCaret("- ");
        }, 0);
      }

http://jsfiddle.net/npGVS/

前もって感謝します :)

4

1 に答える 1

3

insertAtCaretは jQuery の拡張であり、通常は含まれていません。extensionを追加すると、次のように機能します。

デモ

$.fn.insertAtCaret = function(myValue) {
    return this.each(function() {
        var me = this;
        if (document.selection) { // IE
            me.focus();
            sel = document.selection.createRange();
            sel.text = myValue;
            me.focus();
        } else if (me.selectionStart || me.selectionStart == '0') { // Real browsers
            var startPos = me.selectionStart, endPos = me.selectionEnd, scrollTop = me.scrollTop;
            me.value = me.value.substring(0, startPos) + myValue + me.value.substring(endPos, me.value.length);
            me.focus();
            me.selectionStart = startPos + myValue.length;
            me.selectionEnd = startPos + myValue.length;
            me.scrollTop = scrollTop;
        } else {
            me.value += myValue;
            me.focus();
        }
    });
};
于 2013-05-30T10:02:22.420 に答える