2013-03-11 5 views
1

Google 크롬 브라우저에서 Textarea에 단일 줄 및 새 단락이라는 기능을 구현하고 있습니다 (IE에서 Shift + Enter를 사용하기 때문에 IE에서 아무런 문제가 없습니다. \ r \ n) 및 Enter (\ n)를 다르게 입력하십시오. 개념은 내가 Shift + Enter를 선행하면 커서 뒤의 행 (텍스트)이 다음 (새로운) 행 (\ r \ n)으로 이동해야하지만 같은 단락에서 고려되어야한다는 것입니다. 이제 내가 Enter 키 만 표시하면 커서를 놓은 후에 줄 (텍스트)을 다음 (새) 줄 (\ n)로 가져 가야하지만 이번에는 새 단락으로 간주해야합니다.jQuery를 사용하여 단일 새 줄 대 새 텍스트 단락

내 문제는 : 기본적으로 Textarea는 jQuery API 설명서 (http://api.jquery.com/val/)에 따라 \ r \ n을 고려하지 않습니다. Shift + Enter를 누르거나 Enter 만 누르면 \ n을 고려합니다. 나는 (jQuery를 사이트에 주어진) 후크를 구현하는 것이 해결

$.valHooks.textarea = { 
    get: function(elem) { 
    return elem.value.replace(/\r?\n/g, "\r\n"); 
    } 
}; 

라고하지만하려면 다음 모든 시간 장소 \ 연구 \ n 나는 텍스트 영역에 눌러 어떤 키 아무 문제. Shift + Enter (\ r \ n)와 Enter (\ n) 만 구별하고 싶습니다. 하지만 위의 후크가 배치되면, 매번 Shirt + Enter를 누르거나 Enter 만 누르면 \ r \ n이 추가됩니다.

서버 측에서 단일 신규 라인 (\ r \ n) 또는 새로운 단락 (\ n)을 고려하는 방법을 식별하기가 어렵습니다. 두 경우 모두 \ Chrome \ Browser에서 조합을 전송하기 때문입니다.

Shift + Enter 키와 Enter 키 만 누르면 서버 측에서 구분됩니다. 위에서 설명한대로 \ r \ n이 Chrome에서 서버로 전송 될 때마다.

위의 전체 질문은 Google 크롬에서만 가능합니다 (IE의 모든 버전에서 올바르게 작동 함).

질문에 대한 위의 설명에 여전히 빠진 것이 있으면 알려주십시오.

추가 지원 대기 중 :)

+0

이 시나리오에서 도움을 줄 수있는 사람이 있습니까? – NullPointer

+0

아무도 없습니까? – NullPointer

답변

1

나는 그것을 스스로 해결했습니다. ENTER 또는 SHIFT+ENTER을 누르 든 상관없이 Chrome은 항상 \r\n을 반환합니다. 내 요구 사항을 기반으로 트릭을 했어.

사용자 프레스 SHIFT+ENTER와 내가 코드 아래 사용이를 달성하기 위해 때 특수 유니 코드 문자를 배치 할 필요가 있었다 :

jQuery(txtInputControl).val(contentOfInputControl.substring(0,caretPositionOfCursor) + String.fromCharCode(172) + contentOfInputControl.substring(caretPositionOfCursor,contentOfInputControl.length)); 

나는 사용자가 가지고있는 콘텐츠의 중간에 유니 코드 특수 문자를 배치 수단 SHIFT+ENTER을 눌렀습니다. 또한 서버 측 처리도. 그래서 나는 양쪽에서 계속 추적 할 수 있습니다.