我正在尝试验证输入框中的输入,因此我需要找到一种方法来删除添加到字符串中的字符。我的想法,使用光标位置。我的实现应该可以工作,但是每次输入获得焦点时,您都可以看到少数几个字符的故障。
我的小提琴在:http: //jsfiddle.net/fallenreaper/TSwyk/
我究竟做错了什么?当我想验证时,我不希望它检查并删除错误的字符。
我的javascript代码是(我相信使用jquery 1.7.2):
function getCursorPosition(jqueryItem)
{
var input = jqueryItem.get(0);
if (!input) return; // No (input) element found
if ('selectionStart' in input) {
// Standard-compliant browsers
return input.selectionStart;
} else if (document.selection) {
// IE
input.focus();
var sel = document.selection.createRange();
var selLen = document.selection.createRange().text.length;
sel.moveStart('character', -input.value.length);
$("#sel").html(sel);
$("#selLen").html(selLen);
return sel.text.length - selLen;
}
}
$(function(){
alert("loaded");
$("input").on("input", function(){
var cPos = getCursorPosition($(this));
$("#cursorPos").html(cPos);
var FLAG = 'a';
$("#charatpos").html($(this).val().charAt(cPos));
$("#"+$(this).attr("id")+"count").html($(this).val().length);
if($(this).val().charAt(cPos) == FLAG){
var str = $(this).val();
var sArr = str.split("");
sArr.splice(cPos,1);
str = sArr.join("");
$(this).val(str);
}
});
});