在 jquery 中,当您键入字母时,单词的中间放在最后
In jquery when you type letter middle of word goes last
我有两个输入,当你输入上面的输入时,它会同时写入底部的输入。我有一个字母 i
,它与字母 ı
不同,但在英语中它们有相同的大写字母 I
所以我写了下面的代码来解决这个问题:
$(".buyuk").on("keypress", function(event) {
event.preventDefault();
if (event.which == 105)
$(this).val($(this).val() + "İ");
else
$(this).val($(this).val() + String.fromCharCode(event.which).toUpperCase());
});
当你想从中间编辑单词时,当你写完单词后,它会将字母添加到末尾。例如,我输入了 moitor
,但当我预期输出为 monitor
时,却变成了 moitorn
。
您需要知道活动插入符位置在哪里。我找到了一个不错的函数 here.
有了那个函数,你可以重写你的函数:
$(".buyuk").on("keypress", function(event) {
event.preventDefault();
if (event.which == 105)
var key = "İ";
else
var key = String.fromCharCode(event.which).toUpperCase();
var carPos = $(this).getCursorPosition();
var v = $(this).val();
var l = v.length + 1;
var newValue = v.substr(0,carPos) + key + v.substr(carPos,l)
$(this).val( newValue );
});
备注
试试这个:
$(".buyuk").on("keypress", function(event) {
event.preventDefault();
var char = String.fromCharCode(event.which).toUpperCase();
if (event.which == 105) char = "İ";
var og = $(this).val();
var selection = this.selectionStart;
$(this).val(og.substr(0, selection) + char + og.substr(this.selectionEnd, og.length));
this.selectionStart = this.selectionEnd = selection + 1;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="buyuk">
这适用于 select 替换,并且不会移动您的光标位置。因此,如果您键入 12345
和 select 34
并键入 J
,它将变成 12J5
,就像普通文本字段一样。它还会保持您的光标位置,因此如果您在输入的中间开始输入,它不会将您的光标移动到文本字段的末尾。
我有两个输入,当你输入上面的输入时,它会同时写入底部的输入。我有一个字母 i
,它与字母 ı
不同,但在英语中它们有相同的大写字母 I
所以我写了下面的代码来解决这个问题:
$(".buyuk").on("keypress", function(event) {
event.preventDefault();
if (event.which == 105)
$(this).val($(this).val() + "İ");
else
$(this).val($(this).val() + String.fromCharCode(event.which).toUpperCase());
});
当你想从中间编辑单词时,当你写完单词后,它会将字母添加到末尾。例如,我输入了 moitor
,但当我预期输出为 monitor
时,却变成了 moitorn
。
您需要知道活动插入符位置在哪里。我找到了一个不错的函数 here.
有了那个函数,你可以重写你的函数:
$(".buyuk").on("keypress", function(event) {
event.preventDefault();
if (event.which == 105)
var key = "İ";
else
var key = String.fromCharCode(event.which).toUpperCase();
var carPos = $(this).getCursorPosition();
var v = $(this).val();
var l = v.length + 1;
var newValue = v.substr(0,carPos) + key + v.substr(carPos,l)
$(this).val( newValue );
});
备注
试试这个:
$(".buyuk").on("keypress", function(event) {
event.preventDefault();
var char = String.fromCharCode(event.which).toUpperCase();
if (event.which == 105) char = "İ";
var og = $(this).val();
var selection = this.selectionStart;
$(this).val(og.substr(0, selection) + char + og.substr(this.selectionEnd, og.length));
this.selectionStart = this.selectionEnd = selection + 1;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="buyuk">
这适用于 select 替换,并且不会移动您的光标位置。因此,如果您键入 12345
和 select 34
并键入 J
,它将变成 12J5
,就像普通文本字段一样。它还会保持您的光标位置,因此如果您在输入的中间开始输入,它不会将您的光标移动到文本字段的末尾。