web-dev-qa-db-ja.com

キャッチされない例外:構文エラー、認識されない式:#

JQueryの.click()イベントでこのエラーが発生します。 Firebugで見ます。最新バージョンの1.3.2(分)を使用しています。クリックすると、Webサイトのフォームに対して$ .ajax()リクエストが発生します。私はこれについてグーグルに尋ねました、そして彼が知っているのは認識されない表現としての「%」または「[@]」だけで、「#」については何もありません。

これが私のコードの一部です:

    $("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()を呼び出します。formErrorHandling()は、表示/非表示など、重要なことは何もしません。

私のセレクターからのものかもしれないと読みましたが、それらはすべて問題ないようです。

他の誰かが同じ問題を抱えていましたか?

ありがとう。

8
Adrian

私が見ることができることから、例外はあなたが使用しているjScrollPaneプラグインによって何らかの形で引き起こされているようです。

含めるスクリプト(2008年12月以降のv1.2.3)を、トランクから直接新しいバージョンに置き換えてみてください。これには、v.1.2.3に対する多くの改善が含まれ、例外が修正されています jScrollPane.jsjScrollPane.min.js YUICompressorで縮小されたr87jScrollPaneの縮小バージョン)


不要になった古い回答を削除

8
jitter

一部のブラウザでは、IDが空で、JQueryがセレクタとして「#」をチョークします。

3
Shanimal

2011年9月

から変更

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

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

そしてその自己を治したuncaught exception: Syntax error, unrecognized expression: #メッセージ

1
John Griffiths

私はそれが古い問題であり、新しいバージョンのjScrollPaneがあることを知っていますが、レガシーの問題のために現在のものを使用する必要があったので、ここに修正があります。上記の回答から jScrollPane.js を使用する場合は、534行目のコードを変更する必要があります。

変化する:

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

    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関数は無視されます。

乾杯

G。

0
Greg

私にとっての問題は、セレクターに#が多すぎることが原因のようでした。

例えば:

$('##id_name')

になるはずだった...

$('#id_name')
0
JGarrido

formErrorHandling関数はどのように見えますか?セレクターまたはjQueryオブジェクトを期待していますか?

おそらくあなたが必要なのはそれを次のように呼ぶことです

formErrorHandling($("#userLastName"));
0
Victor Jalencas