2011-08-15 5 views
0

페이지에서 텍스트를 바로 편집하고 각 필드의 커서가 바뀌면 변경 사항을 커밋하는 양식 유형의 편집기를 만들고 싶습니다. 글꼴이나 스타일이 변경되지 않고 직선 상자 만 사용됩니다.웹 양식에 ContentEditable을 사용하는 것이 좋습니다?

몇 가지를 보았습니다. JEditable하지만 '확인'을 눌러야하는 상자와 필요성은 약간 매력적이지 않고 직관적이지 않은 것처럼 보입니다.

각 요소에 contentEditable="true"을 적용하는 것에 대해 궁금합니다. 같은 것을 달성 할 것이라고 상상합니다. 입력이있는 양식이 아니기 때문에, 자바 스크립트를 통해 변경 사항을 제출해야하지만, 그것은 상상할 수 있습니다.하지만 그것은 내 상황에 적용 할 수 있습니다. (또한 JEditable 또는 이와 유사한 것과 같은 모든 요소에 대해 자바 스크립트에 대해 걱정하는 것보다 다소 단순 해 보입니다.

합리적인 해결책입니까? 사이트의 특정 부분에 대한 모바일 브라우저 지원에 대해 걱정하지 않습니다. 그러나 또는 무언가를을 지원합니다 ...)

+1

ContentEditable은 입력 상자가 아닌 경우 사용자 입력에 적합하지 않다는 점을 제외하고는 정상적으로 작동합니다. 가장 좋은 방법은 부동 및 숨겨진 div에 텍스트 영역을 넣은 다음 맨 위에있는 요소로 편집 위치로 이동하는 것입니다. 물론 현재 요소의 텍스트를 텍스트 상자로 복사 한 다음 Enter 키를 눌러 사라지게하거나 커밋해야합니다. –

+1

JEditable은 버튼이 없도록 설정하고 onblur를 제출할 수 있습니다. – lulalala

답변

1

코드 현명한 이런 식으로 뭔가 볼 필요가있다 :.이 jQuery를 구문 BTW

$(".YourElementClassHere").click(function() { 
    $("#YourTextArea").position($(this).position()); 
    $("#YourTextArea").css("display", "block"); 
}); 

$("#YourTextArea").click(function() { 
    if (event.which == 13) { 
    $("#YourTextArea").css("display", "none"); 
    // Do something to commit this: $("#YourTextArea").text(); 
    } 
}); 

입니다 알고 안 사람을 위해 이 . 나는 이것이 약간 녹슬어 졌기 때문에이 도움이되기를 바란다.이 자바 스크립트는 약간의 변경이 필요할 수있다.

+0

나는 그걸로 일할 수있다. 입력란에 텍스트 상자의 스타일을 가져 와서 매끄럽게 보이게하는 합리적인 방법이 있는지 궁금합니다. 상상할 수있는 jQuery와 같은 특정 스타일을 잡을 수 있습니다. – Damon

+0

'(event.which == 13)'이 무엇을하고 있는지 잘 모르겠습니다. – Damon

+0

네, 가능하지만, textareas와 같은 것들은 매우 복잡 할 수 있지만, CSS로 할 수있는 것과 똑같은 스타일을 자바 스크립트로 할 수 있습니다. event.which는 여러 브라우저에서 키 누르기가 하나에 들어가는 것을 감지하는 다양한 방법의 JQuery 컴파일이며, 키 13은 입력되며, 그물에서 다른 키를 찾을 수 있습니다. 늦게 답장을 드려 죄송합니다. –

관련 문제