0

keyup イベントを jQuery にバインドするために、JSF でテキストボックスの ID を取得したいと考えています。

私は$('#A3023\\:formId\\:textboxId').live('keyup', function(){...});javascriptコードを持っていますが、うまくいきます。しかし、サーバー側で JavaScript を呼び出さなければなりません。

$('#A3023\\\\:formId\\\\:textboxId') ということで、ダブルエスケープでやってみましたがうまくいき\ません。

liferay を使用して JavaScript を呼び出しています

JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), 'script code');

でいくつかのテストがありalert()ます。それはまだ機能しますが、ID では機能しません。私に提案はありますか?

4

1 に答える 1

0

JavaScript\ではエスケープ文字でもあります。したがって、jQuery セレクターの文字列に 2 つのバックスラッシュを挿入することで、文字通り 1 つのバックスラッシュ文字を含めるだけです。jQuery は、コロン/ピリオドの内部エスケープ文字として何らかの形で解釈します。

この\文字は Java エスケープ文字でもあるため、同じ文字列リテラルを生成するために、何も変更する必要はありません。

"$(\"#A3023\\:formId\\:textboxId\")"つまり、文字列をサーバー側の execute メソッドに渡すだけで十分です。

于 2012-07-14T06:32:56.800 に答える