#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