неперехваченные исключения: синтаксическая ошибка, нераспознанный выражение: #

Я получаю эту ошибку на себя .нажмите кнопку() событие в jQuery. Я вижу это в Firebug. Я использую последнюю версию, 1.3.2 (min) Щелчок запускает $.ajax () запрос формы на моем веб-сайте. Я спросил google об этом, и все, что он знает, это "%" или "[@]" как непризнанные выражения, ничего о "#".

вот немного моего кода:

    $("form#buyForm #submitForm").live("click", function(e) {
        var errors = 0;

        var inputLastName_value = $("form#buyForm input#userLastName").val();
        if (inputLastName_value == "") {
         errors = 1;
         formErrorHandling("#userLastName");
         return false;
        }
        return false;
    });

таким образом, я проверяю все свои входы на наличие ошибок, а затем вызываю formErrorHandling (), который делает некоторые шоу / скрытие, такие вещи, ничего важный.

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

У кого-нибудь еще была такая же проблема?

спасибо.

6 ответов


из того, что я вижу, исключение, кажется, каким-то образом вызвано jScrollPane плагин вы используете.

попробуйте заменить скрипт включить (В1.2.3 как с декабря 2008) с новой версии прямо из ствола. Что включает в себя множество улучшений по сравнению с v. 1.2.3 и исправляет исключение для меня jscrollpane не.js (jscrollpane не.минута.js уменьшенная версия r87 jScrollPane, уменьшенная с помощью YUICompressor)


удалил старый ответ больше не нужен


в некоторых браузерах id может быть пустым, а jQuery подавляется " # " в качестве селектора.


сентября 2011

изменилась с

$(document).ready( function () {
  $('#'+id).creatorCall( {init:param} ) ;
} );

to

$(document).ready( function () {
  $(this).creatorCall( {init:param} ) ;
} );

и вылечил себя же uncaught exception: Syntax error, unrecognized expression: #


Как выглядит функция formErrorHandling? Ожидает ли он селектор или объект jQuery?

возможно, вам нужно назвать это как

formErrorHandling($("#userLastName"));

Я знаю, что это старая проблема, и есть более новая версия jScrollPane, но поскольку мне нужно было использовать текущий из-за устаревших проблем, вот исправление. Если вы будете использовать jscrollpane не.js из ответа выше вам нужно изменить код в строке 534:

изменения:

    if (h && h.substr(0, 1) == '#' && h.length > 1) {

to

    if (h && h!='#' && h.substr(0, 1) == '#' && h.length > 1) {

весь кусок кода, ответственный за клики документа с исправлением:

$(document).bind('click', function(e){
    $target = $(e.target);
    if ($target.is('a')) {
        var h = $target.attr('href');
        if (h && h!='#' && h.substr(0, 1) == '#' && h.length > 1) {
            setTimeout(function(){
                scrollTo(h, !settings.animateToInternalLinks);
            }, $.browser.safari ? 100 : 0);
        }
    }
});

в основном scrollTo функция будет проигнорирована если ссылка href равна #

Ура

г.


проблема для меня, казалось, была вызвана тем, что в селекторе было слишком много#.

например:

$('##id_name')

должны были...

$('#id_name')