2014-11-30 2 views
0

레일 4. 나는 textarea에서 입력을 받아 텍스트 영역 2의 코드에 코드 미러 모드를 적용하려는 다음 코드가있는 뷰를가집니다. 텍스트 영역 1의 내용을 읽을 수 없습니다. 텍스트 영역 1에 코드를 붙여 넣고 내 JS 파일에서받을 때 항상 제출 버튼을 누릅니다.js에서 null을 반환하는 레일 뷰의 텍스트 영역

카테고리/show.html.erb :

<div id="ccontainer"> 
<div class="hero-spacer"> 
    <%= text_area_tag :cols => "30", :rows => "10", :id => "myText", :class => "editor1-pane" %> 
    <%= text_area_tag :cols => "30", :rows => "10", :id => "myText2", :class => "editor2-pane" %> 

    <%= button_to_function "✓", '$(this).toggleClass("buttonGrey buttonGreen");', :class => "buttonGrey" %> 
</div> 

</div> 

categories.js가 있습니다

$(document).ready(function() { 

    $(".buttonGrey").on("click", function() { 

     alert("Confirmed"+ $('#myText')); <--- Always returning null 
     console.log($('.editor1-pane')); 
     if(document.getElementById("myText").value == null){ 
      alert('NULL >>'); 
     } 
     var myCodeMirror = CodeMirror.fromTextArea(document.getElementById('myText'), { 
      lineNumbers: true, 
      matchBrackers: true, 
      styleActiveLine: true, 
      theme: "eclipse", 
      mode: { name: "xml", htmlMode: true } 
     } 
     ); 
    // do something 
     document.getElementById("myText2").value = myCodeMirror.getValue(); 
    }) 
}); 

내가 뭘 잘못 몰라!

답변

1

레일은 다음에 name, content, options이 오겠지 만 옵션을 제공했습니다.

"myText"를 id로 지정하는 대신 레일스는 전체 옵션 목록을 name (HTML 출력을 확인하여 확인)으로 지정하고 옵션을 설정하지 않습니다. 이 때문에 jQuery 셀렉터는 아무 것도 찾지 못한다.

이 시도 : 텍스트 영역 "으로 myText"의 ID와 이름을 설정하고 적절하게 너무 옵션을 설정해야합니다

<%= text_area_tag "myText", nil, :cols => "30", :rows => "10", :class => "editor1-pane" %> 

.

+0

아, 맞습니다! 조셉 감사합니다! – user2511030