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-1){ //if(String($('#SndSms_Message').val()).indexOf(String(String(Two).charAt(i)))>-1){ 计数器mslen+=1; oldindex=String($('#SndSms_Message').val()).indexOf(String(String(Two).charAt(i)),oldindex)+1; 控制台日志(i); } i++; } SndSms_Message.selectionEnd=position;//将光标设置回初始位置。 }); if($('#SndSms_Message').val().length==0) 计数器mslen=0; $('#SndSms_Count').html('+countermslen+'Characters'+UniCodestring+'
'+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您有什么办法可以帮助我吗?粘贴在一些计算机上工作,在一些计算机上不工作,还有它计数字符的方式不计数第一个字符。您能指导我吗?