не удается прочитать значение свойства undefined в событии onkeypress

#javascript #jquery

#javascript #jquery

Вопрос:

Привет, ребята, у меня есть поле ввода, в котором у меня есть onkeypress и функции on kepy up при вводе любых values..so при добавлении моего ввода я получаю сообщение об ошибке, так как не могу прочитать значение свойства undefined.

Вот мой ввод:

 html  = '<div><input type="text" name="q' typeInd '[]"  onkeyup="updateQuesMark(' typeInd ',' textBoxCnt    ',this.value)" onkeypress="return quesMarkOnly(event)" class="width-dynamic proba dva hlbox" ></div>';
                               
 

Вот мои функции:

  function updateQuesMark(enumCount,txtCnt,tvalue,typeFlag = null,stepCount = null,stepIdx = null)
{
  if(typeFlag == null || typeFlag == 1)
    {
      var values = $("input[name='q" enumCount "[]']")
      .map(function(){return $(this).val();}).get();
      ar.Question_Format[enumCount-1].value = values.toString();
    }
    else 
    {
         var values = $("input[name='q" enumCount "[]']").last().val();
            // console.log(values);
         ar.Solutions[0].Steps[(stepCount - 1)].Display[stepIdx].Value = values.toString();
            // (enumCount),ar.Solutions[enumCount-1].Steps[stepCount].Display[0].Value = values.toString();
    }        
    arr = JSON.stringify(ar,undefined,2);
    $('#jasonData').html(arr);
    $('#jsonData').val(arr);
}


function quesMarkOnly(e)
{   

    evt = (e) ? e : window.event;

    var charCode = (evt.which) ? evt.which : evt.keyCode;
    // 8 For BackSpace, 49 For Number '1', 63 For '?', 88 For 'x', 89 For 'y', 120 For 'X', 121 For 'Y'
    if (charCode == 8 || charCode == 49 || charCode == 63 || charCode == 88 || charCode == 89 || charCode == 120 || charCode == 121 || charCode == 50 || charCode == 51 || charCode == 52 || charCode == 53 || charCode == 54 || charCode == 55 || charCode == 56 || charCode == 57) {
        console.log(e.originalTarget);
       if(e.originalTarget.value.length==1 amp;amp; charCode !=8)
        {  

            console.log('1 : Return False');
            return false;
        }
        console.log('2 : Return True');
        return true;
    }
    console.log('3 : Return False');
    return false;
}
 

И я получаю сообщение об ошибке из этой строки

 if(e.originalTarget.value.length==1 amp;amp; charCode !=8)
       
 

Может ли кто-нибудь помочь мне, где я допустил ошибку.

Комментарии:

1. originalTarget поддерживается только в Firefox. Попробуйте target или currentTarget вместо этого, в зависимости от вашей точной цели. Я бы также предложил передать событие функции в качестве аргумента, поскольку window.Event поддержка также неоднородна — еще лучше использовать addEventListener() для привязки ваших обработчиков.

2. хорошо, 2 ошибки, позвольте мне проверить

3. да, currentTarget работает для Chrome