ReferenceError: функция не определена - PullRequest
0 голосов
/ 22 июля 2011

У меня небольшая ошибка (я полагаю) в моем файле Javascript.Это простой файл, но он не работает должным образом на Firefox 6 (на Chrome он работает нормально).Все работает, кроме submit (), и validate () работает только при вызове в document.ready, если я пытаюсь получить доступ к этим функциям напрямую, я получаю ...

uncaught exception: ReferenceError: (function) is not defined

Вот файл JShttp://pastebin.com/raw.php?i=CMy4WYPF, загружается после jQuery lib, других файлов JS нет.

Большое спасибо за помощь.

Ответы [ 2 ]

3 голосов
/ 22 июля 2011

Вы не показываете, как или когда код загружается, поэтому когда он выполняется, неизвестно.

Разметка документа не предусмотрена, поэтому невозможно сказать, что может работать, а что нет, и почему. Вот некоторые предложения по улучшению, они могут иметь или не иметь никакого значения.

Следующие утверждения:

> 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.

0 голосов
/ 03 сентября 2013

Не забудьте указать,

 <script src="jquery-1.xx.x.min.js" type="text/javascript"> </script>

, если вы используете jquery, xx-x означает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...