我正在尝试为我的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个空格?
答案 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;
答案 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)
+
+ $(this).val().substring(end));
$(this).get(0).selectionStart =
$(this).get(0).selectionEnd = start + 1;
}
});
答案 2 :(得分:0)
只使用不可破坏的空格:
而不是常规空格。
答案 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;
}