2012-07-14 2 views
0

jQuery와 키 업 이벤트를 바인딩하기 위해 JSF에서 텍스트 상자의 ID를 가져오고 싶습니다.문자를 두 번 이스케이프 처리합니다. java 및 javacript

자바 스크립트 코드에 $('#A3023\\:formId\\:textboxId').live('keyup', function(){...});이 있는데 정상적으로 작동합니다. 하지만 나는 서버 측에서 JavaScript를 호출해야한다.

따라서 \에 대해 $('#A3023\\\\:formId\\\\:textboxId') 두 번 이스케이프 처리를 시도하지만 작동하지 않습니다. 나는 자바 스크립트

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

를 호출하는 Liferay를 사용하고

나는 alert() 몇 가지 테스트가 있습니다. 여전히 작동하지만 ID가 없습니다. 저에게 제발 제안 해 주시겠습니까?

답변

0

\도 이스케이프 문자입니다. 따라서 jQuery 셀렉터의 문자열에 이중 백 슬래시를 넣으면 리터럴 단일 백 슬래시 문자가 포함됩니다. jQuery는 콜론/기간의 내부 이스케이프 문자로 해석합니다.

문자가 \ 문자가 Java 이스케이프 문자이기 때문에 동일한 문자열 리터럴을 생성한다는 것은 아무 것도 변경하지 않아도된다는 의미입니다.

즉, "$(\"#A3023\\:formId\\:textboxId\")" 문자열을 서버 측 실행 메소드로 전달하면 충분합니다.

+0

나는 서버 측 스크립트에서 실패한다 ... 나는이 자바 스크립트에서 json을 사용하고 클라이언트 측에서이 스크립트를 넣는다. 아마도 훌륭한 해결책은 아니지만 작동한다. – user1487380

관련 문제