Вы не показываете, как или когда код загружается, поэтому когда он выполняется, неизвестно.
Разметка документа не предусмотрена, поэтому невозможно сказать, что может работать, а что нет, и почему. Вот некоторые предложения по улучшению, они могут иметь или не иметь никакого значения.
Следующие утверждения:
> var exception = $('#teligence-exception');
> var form = $('#teligence-ctc form');
вверху скрипта. Существуют ли элементы, на которые ссылаются идентификаторы, в DOM при выполнении операторов?
Поиск кодов в массиве с использованием jQuery inArray неэффективен в браузерах, в которых отсутствует собственный метод Array.prototype.indexOf (а это довольно много). Гораздо лучше иметь коды в виде строки с разделителем и использовать вездесущий метод String.prototype.indexOf (), например
var codes = '|201|202|203|';
...
var x = code.indexOf('|' + val + '|');
Функция submit в опубликованном коде не вызывается.
Большая часть сценария выглядит очень неэффективно:
> var val = $(this).val();
> $(this).val( val.replace(/[^0-9]/, '') );
может быть
var val = this.value;
this.value = val.replace(/D/g, '');
обратите внимание, что в исходном коде будет заменен только первый нецифровый символ. В предлагаемом коде все нецифровые символы будут заменены (любезно предоставлено флагом g ).
Также:
validate($(this).attr('name'));
может быть:
validate(this.value);
и так далее. Идея состоит в том, чтобы не создавать ненужные объекты jQuery.