2013-02-27 4 views
1

ASP.NET MVC 4 웹 응용 프로그램에서 SignalR과의 연결을 설정하려고합니다. 내가해야 할 일은 사용자가 텍스트 영역에 글을 쓰게하고 클릭하면 사용자가 작성한 메시지를 같은 페이지의 모든 클라이언트에게 보내려고합니다.텍스트 영역에서 입력 된 텍스트를 얻는 방법

나는 아주 간단한 단계로 붙어 있습니다. 사용자가 나는 다음과 같은 코드를 사용하고있는 텍스트 영역의 글을 어떻게 읽으려면 : 내가 테스트 목적으로 경고 상자를 사용하고

var msg = $('#editor').text(); 
alert(msg); 

. 문제는 경고 상자가 비어있는 상태, 즉 메시지가 제대로 읽히지 않는 것입니다. editor는 html 파일에있는 텍스트 영역의 ID입니다. 그러므로이 .. 나머지는 마스터 파일의 내용입니다 그것은 아약스를 통해로드

@{ 
    ViewBag.Title = "- Editor"; 
    ViewBag.ContentStyle = "/Content/CSS/editor.css"; 
} 

<script src="/Scripts/jquery-1.6.4.min.js" ></script> 
<script src="/Scripts/jquery.signalR-1.0.0.js"></script> 
<script src="/signalr/hubs"></script> 
<script type="text/javascript" src="~/Content/tinyMCE/tiny_mce.js" ></script> 
<script type="text/javascript" src="~/Scripts/EditorHandler.js"></script> 

<button id="button">Click me</button> 

<form> 
     <textarea id="editor" name="content" cols="100" rows="30"> 
    </textarea> 
</form> 

: 이것은 HTML 파일입니다

$(function() 
    { 
     var edit = $.connection.editorHub; 

     edit.client.broadcastMessage = function (message) { 

      var msg = $('#editor').text(); 
      alert(msg); 

      // Add the message to the page. 
      $('#editor').append(msg); 
     }; 

     $.connection.hub.start().done(function() { 
      $('#button').click(function() { 
       // call the send method in EditorHub 
       chat.server.send($('#editor').val()); 
      }); 
     }); 
    }); 

:

모든 자바 스크립트 파일입니다

+3

우리에게 당신의 HTML을 보여주세요 :) :) – Alexander

+0

무엇이'# editor'이고 왜'text()'라는 함수가 있을까요? (우리는 HTML도보아야합니다.) – Hogan

+0

Html File submitted .. #editor는 위에서 본 텍스트 영역입니다 – Bernice

답변

7

텍스트가 아닌 텍스트 영역에서 값을 가져와야합니다.

$('#editor').val(); 

또는 TinyMCE에의 콘텐츠 얻을 : 여기

우리가 val()

를 사용

var msg = tinyMCE.get('#editor').getContent() 

또는

var msg = tinyMCE.activeEditor.getContent(); 
+0

나는 이미 이것을 시도하고 동일한 결과를 얻었다! – Bernice

+0

나를 위해 일하는 것 같습니다 -> [** FIDDLE **] (http://jsfiddle.net/3bKcC/) ??? – adeneo

+2

@adeneo 아마 tinyMCE가 편집기를 숨기고 그것을 자신의 것으로 대체하는 경우 tinyMCE에게 tinyMCE 편집기의 컨텐츠를 숨겨진 텍스트 영역으로 푸시하도록 할 필요가 있습니다. –

1

내가 코드의 두 부분 사이의 이상한 차이에주의를
chat.server.send($('#editor').val()); 

는 여기에서 우리는 당신이이 같은 기능을 사용하려면 같은데요 text()

var msg = $('#editor').text(); 

사용합니다. 아마도 val()하지만 게시 한 코드를 확실히 알 수 없습니다.

+0

거기에 요점이 있습니다. 그러나 둘 다 val()로 변경하면 같은 결과가 나타납니다. 어떤 이유로 msg이 남았습니다! – Bernice

관련 문제