1

ASP.NET MVC 4 Web アプリケーションで SignalR との接続を確立しようとしています。私がする必要があるのは、ユーザーがテキスト領域に書き込めるようにすることです。クリックすると、ユーザーが書いたメッセージを同じページのすべてのクライアントに送信しようとしています。

私は非常に単純なステップで立ち往生しています。ユーザーがテキストエリアに書いたものを読むために、私は次のコードを使用しています:

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

テスト目的でアラートボックスを使用しています。問題は、警告ボックスが空である、つまりメッセージが正しく読まれていないことです。editor は、html ファイル内のテキスト領域の ID です。

これはすべての JavaScript ファイルです。

$(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());
            });
        });
    });

これは HTML ファイルです。

@{
   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>

ajax を介して読み込まれるため、これがコンテンツです。残りはマスター ファイルにあります。

4

2 に答える 2

7

text() ではなく、テキストエリアから値を取得する必要があります。

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

または、TinyMCE からコンテンツを取得するには:

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

また

var msg = tinyMCE.activeEditor.getContent();
于 2013-02-27T21:07:38.460 に答える
1

コードの2つの部分の奇妙な違いに注意してください。

ここでは使用しますval()

 chat.server.send($('#editor').val());

ここでは使用しますtext()

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

これらに同じ機能を使用させたいと思います。おそらくval()ですが、投稿したコードでは確実にわかりません。

于 2013-02-27T21:09:24.317 に答える