将空间添加到Textarea

时间:2015-02-27 15:50:34

标签: javascript jquery html

我正在尝试为我的textarea添加4个空格。

但是,它只增加了1个空格。

$(document).delegate('#test', 'keydown', function(e) {
    var keyCode = e.keyCode || e.which;

    if (keyCode == 9) {
        e.preventDefault();
        var start = $(this).get(0).selectionStart;
        var end = $(this).get(0).selectionEnd;

        $(this).val($(this).val().substring(0, start)
            + " " + " " + " " + " "
            + $(this).val().substring(end));

            $(this).get(0).selectionStart =
            $(this).get(0).selectionEnd = start + 1;
    }
});

编辑:

我已经测试了 并且输出了“”输出:“”输出到了tetarea。

如何强制它添加4个空格?

4 个答案:

答案 0 :(得分:1)



$("textarea").on('keydown', function(e) {
    if(e.keyCode == 9) {
      e.preventDefault();
      for(var i=0; i<4; i++) {
        	var start = this.selectionStart,
          end = this.selectionEnd,
          value = $(this).val();

        	$(this).val(value.substring(0, start)
                    + " "
                    + value.substring(end));
        	this.selectionStart = this.selectionEnd = start + 1;
      }
    }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea cols="30" rows="10"></textarea>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

$(document).delegate('#test', 'keydown', function(e) {
var keyCode = e.keyCode || e.which;

if (keyCode == 9) {
    e.preventDefault();
    var start = $(this).get(0).selectionStart;
    var end = $(this).get(0).selectionEnd;

    $(this).val($(this).val().substring(0, start)
        + &nbsp;&nbsp;&nbsp;&nbsp;
        + $(this).val().substring(end));

        $(this).get(0).selectionStart =
        $(this).get(0).selectionEnd = start + 1;
}

});

答案 2 :(得分:0)

只使用不可破坏的空格:&nbsp;而不是常规空格。

答案 3 :(得分:0)

一种解决方案是将函数调用四次。

$(document).delegate('#code', 'keydown', function(e) {
    var keyCode = e.keyCode || e.which;

    if (keyCode == 9) {
        e.preventDefault();
        add_space();
        add_space();
        add_space();
        add_space();

    }
});

function add_space()
{
    $code = $("#code");

            var start = $code.get(0).selectionStart;
        var end = $code.get(0).selectionEnd;

        $code.val($code.val().substring(0, start)
            + " "
            + $code.val().substring(end));

            $code.get(0).selectionStart =
            $code.get(0).selectionEnd = start + 1;
}