2015-02-27 4 views
1

Я пытаюсь добавить 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; 
    } 
}); 

Edit:

Я уже опробовали   и он получает выводимый как «   » не выводит: «   » в tetarea.

Как я могу заставить его добавить 4 пробела?

ответ

1

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

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

+0

Я хочу пространства, а не табуляции :) –

+0

Просто обновите! Дай мне знать :) –

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; 
} 

});

0

Просто используйте неразложимые пробелы: &nbsp; вместо обычных пробелов.

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; 
} 
Смежные вопросы