2017-11-28 22 views
1

내 양식의 텍스트 영역에서 두 개의 코드 미러 인스턴스를 만들고 있는데 제출하기 전에 숨겨진 텍스트 영역을 업데이트해야합니다. 스크립트에 변경 이벤트를 추가했지만 작동하지 않는 것 같습니다.CodeMirror on change

아무도 도와 줄 수 있습니까? 감사

<script type="text/javascript"> 
    function editor(id) { 
      var editor = CodeMirror.fromTextArea(id, { 
       continuousScanning: 500, 
       lineNumbers: true 
      }); 
      editor.setSize(900, 600); 
     } 
    var config_id = document.getElementById('id_config') 
    var config = editor(config_id); 
    var remote_config_id = document.getElementById('id_remote_config') 
    var remote_config = editor(remote_config_id); 

    config.on('change',function(cMirror){ 
     // get value right from instance 
     config_id.value = cMirror.getValue(); 
    }); 
    remote_config.on('change',function(cMirror){ 
     // get value right from instance 
     remote_config_id.value = cMirror.getValue(); 
    }); 
</script> 

답변

0

당신은 그의 change 이벤트를 사용할 수 없습니다 CodeMirror 그래서 다른 change 이벤트를 해고 값을 변경, 숨겨진 텍스트 영역의 변경을 대기. 그것은 무한 루프를 일으킬 수 있습니다.

var myCodeMirror = CodeMirror.fromTextArea(myTextArea);

이 의지, 무엇보다도 이 텍스트 영역의 값이 업데이트되어 있는지 확인합니다 :

라이브러리는 훨씬 더 강력한 바로 가기를 제공합니다

문서는 올바른 접근 방식을 포함 양식 (양식의 일부인 경우)이 제출되면 편집기의 내용과 함께을 제출하십시오.

즉, 위에 표시되지 않은 코드에 버그가 있음을 의미합니다. 아마도 폼을 제출하기 위해 이상한 방법을 사용하고있을 수 있습니다. 따라서 CodeMirror는 값을 알아 채고 업데이트 할 수 없습니까?

하나의 옵션은 양식을 제출하는 JavaScript에서 CodeMirror를 제거하는 것입니다.

+0

흠, 이걸 보면 내 서버 측 코드가 작동하지 않을 수도 있다고 생각합니다. 양식을 제출하면 업데이트가 유지되고 페이지가 새로 고침됩니다. 그러나 페이지를 새로 고침하면 이전 콘텐츠가 다시 나타납니다. – AlexW