Extra Form
PHP PHP 7.4
CMS Rhymix 2.x

현재 댓글창에서 textarea 만 강제 사용중이며 에디터 모드는 접근되지 않게 구현해두었습니다.

 

textarea 에서 내용 입력 후 enter 키 입력시 submit 되게 하고 싶어 구글에서 찾아본 결과

 

https://way-be-developer.tistory.com/244 꽤나 신뢰되는 정보라 참고하여 작업중입니다.


<script>
function submitTextarea(event) {
let key = event.key || event.keyCode;

if ((key === 'Enter' && !event.shiftKey) || (key === 13 && key !== 16)) {
    setTextareaReplace();
    return false;
    }
}

    let textarea = document.getElementById('temp_{$oDocument->document_srl}');
    textarea.addEventListener('keydown', event => submitTextarea(event));
</script>

 

하지만 textarea 바로 아래 스크립트를 추가하여도 작동하지 않는데 어디를 어떻게 손봐야 할까요...

 

html 은 수박 겉핥기로 배운 지식으로 수정하여 사용할수 있겠는데 스크립트는 너무 어렵네요 ㅠㅠ

  • profile

    setTextareaReplace() 는 어디에 선언되어 있나요? PS: (key === 13 && key !== 16) 는 13이면서 16이 아닌 것이란 것을 구현하려는 의도였나요?

     

    아무튼 엔터키 쳤는데 submit되어버리면 사용자들 많이 당황하겠네요~.

  • profile profile
    앗 그 부분에 대해서는 원래 등록하는 버튼의 onclick 를 삭제하고 안내문구를 넣을 예정이였습니다.

    13이 아마 엔터고 16이 shift 키인것 같습니다.

    setTextareaReplace() 는 submit 버튼의 onclick 부분에 작성되어 있었습니다.
  • profile profile
    event.preventDefault()를 빼면 안되고, (key === 13 && key !== 16) 이 부분이 이상하다 안보이시냐는 뜻입니다. 사람이면서 원숭이가 아닌 동물.... 그냥 사람이죠. 아마 (key === 13 && !event.shiftKey) 를 쓰려던 것이겠죠.
  • profile

    버튼에 이미 붙어 있는 기능을 다른 곳에 그대로 옮기려고 하기보다는,

    엔터키를 치면 버튼을 자동으로 클릭하도록 처리하는 편이 더 쉬울 것 같습니다.

    나머지는 버튼에 붙어 있는 onclick 이벤트가 알아서 하겠지요.

  • profile profile
    정보들은 죄다 input 일때라 textarea 일때는 방법이 딱히 없는것 같아 구현 포기 했습니다
    엔터치면 등록되는것에도 약간의 불만이 생길것 같기도 하구요