Javascript 字符计数器不';无法使用粘贴事件
我已经写了一个代码来计算文本框中的字符。 代码运行得很好,唯一的问题是当我将一个文本输入文本框时,我必须按任意键,以便系统开始计数 你能帮我解决这个问题吗Javascript 字符计数器不';无法使用粘贴事件,javascript,asp.net,jscript,Javascript,Asp.net,Jscript,我已经写了一个代码来计算文本框中的字符。 代码运行得很好,唯一的问题是当我将一个文本输入文本框时,我必须按任意键,以便系统开始计数 你能帮我解决这个问题吗 function GetAlhpa(text) { var gsm = "@£$¥èéùìòÇØøÅåΔ_ΦΓΛΩΠΨΣΘΞ^{}\[~]|€ÆæßÉ!\"#¤%&'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqr
function GetAlhpa(text) {
var gsm = "@£$¥èéùìòÇØøÅåΔ_ΦΓΛΩΠΨΣΘΞ^{}\[~]|€ÆæßÉ!\"#¤%&'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà";
var i = 0;
while (i <= String(text).length) {
if (gsm.indexOf(String(String(text).charAt(i))) == -1 && (String(text).charCodeAt(i) != 32) && (String(text).charCodeAt(i) != 27) && (String(text).charCodeAt(i) != 10) && (String(text).charCodeAt(i) != 13)) {
UniCodestring = " Unicode ";
Countsms = 70;
if ($('#SndSms_Message').val().length > 70)
Countsms = 67;
return;
}
i++;
}
Countsms = 160;
UniCodestring = "";
if ($('#SndSms_Message').val().length > 160)
Countsms = 153;
}
var Countsms = 160;
var UniCodestring = "";
var CounterSmsLen = 0;
var Two = "|^€{}[]~";
function GetCountSms() {
document.getElementById('SndSms_Message').addEventListener('input', function (e) {
var target = e.SndSms_Message,
position = SndSms_Message.selectionStart;
ConvertGreek();
CounterSmsLen = $('#SndSms_Message').val().length;
GetAlhpa($('#SndSms_Message').val());
var i = 0;
while (i < String(Two).length) {
var oldindex = -1;
while (String($('#SndSms_Message').val()).indexOf(String(String(Two).charAt(i)), oldindex) > -1) {
//if ( String($('#SndSms_Message').val()).indexOf(String(String(Two).charAt(i))) > -1){
CounterSmsLen += 1;
oldindex = String($('#SndSms_Message').val()).indexOf(String(String(Two).charAt(i)), oldindex) + 1;
console.log(i);
}
i++;
}
SndSms_Message.selectionEnd = position; // Set the cursor back to the initial position.
});
if ($('#SndSms_Message').val().length == 0)
CounterSmsLen = 0;
$('#SndSms_Count').html(' ' + CounterSmsLen + ' Characters' + UniCodestring + ' <br /> ' + Math.ceil(CounterSmsLen / Countsms) + ' Sms');
countsmsnumber=Math.ceil(CounterSmsLen / Countsms);
}
var greekchar = "ΑΒΕΖΗΙΚΜΝΟΡΤΥΧ";
var englishchar = "ABEZHIKMNOPTYX";
function ConvertGreek() {
var str = $('#SndSms_Message').val();
var i = 0;
while (i < String(greekchar).length) {
str = str.replace(new RegExp(String(greekchar).charAt(i), 'g'), String(englishchar).charAt(i));
i++;
}
$('#SndSms_Message').val(str);
函数GetAlhpa(文本){
var gsm=“@$ùùùùùùùùùùùùùùùùùùùùùùùùùΔùùùùùùùùùùùùù249;
var i=0;
而(i 70)
Countsms=67;
返回;
}
i++;
}
Countsms=160;
UniCodestring=“”;
if($('SndSms_Message').val().length>160)
Countsms=153;
}
var Countsms=160;
var=”;
var countermslen=0;
var Two=“| ^€{}[]~”;
函数GetCountSms(){
document.getElementById('SndSms_Message')。addEventListener('input',function(e){
var目标=e.SndSms_消息,
位置=SndSms_消息。选择开始;
转换希腊语();
CounterSmsLen=$('SndSms_Message').val().length;
GetAlhpa($('SndSms_Message').val();
var i=0;
while(i'+Math.ceil(countermslen/Countsms)+'Sms'); countsmsnumber=Math.ceil(countsmslen/Countsms); } var greekchar=“ΑΕΖΗΚΝΡΧΧ”; var englishchar=“ABEZHIKMNOPTYX”; 函数转换希腊语(){ var str=$('SndSms_Message').val(); var i=0; while(i
如果我将数字粘贴到文本框中,它将正确计算数字,但如果我粘贴字符,它将不计算数字。为了处理粘贴事件,您需要使用keyup change事件
document.getElementById('SndSms_Message').addEventListener("keyup", function() {
//your code here
});
您可能还需要处理粘贴事件。请尝试使用document.getElementById('SndSms_Message')。addEventListener('input Property Change',function(e){}@nomali我尝试了您所说的内容,但它不起作用(即使我键入一个字母,它也不再起作用)@Azrahedour下面的答案会起作用。这在jquery中是不起作用的。请参考下面我给出的答案。@Nomali您有什么办法可以帮助我吗?粘贴在一些计算机上工作,在一些计算机上不工作,还有它计数字符的方式不计数第一个字符。您能指导我吗?