0

aspxファイルにid="txtText"のHTMLEditorがあります

エディターのコンテンツが空かどうかをチェックするJQuery関数を作成しようとしています。

私はもともと持っていました:

function check()
{
    if($('#txtText').val() == '')
    {
         return false;
    }
    return true
}

ただし、これが機能しない理由を調べるためにアラートボックスを追加したとき。HTMLEditorの.val()プロパティは常に未定義であることに気付きました(エディターにテキストがあるかどうかに関係なく)。

$('#txtText')。content()を使用してみました。これは、分離コード(C#)のデータにアクセスする方法ですが、JQUERYでは機能しないようです。

いくつかの調査を行った後、私はこのサイトを見つけました:http: //forums.asp.net/t/1549543.aspx/1

私は非常に洗練されたコードを持っているので、AJAXToolkitEditorのコードを継承する独自のカスタムエディターも作成しました。

<cc1:CustomEditor ID="txtEditor" Height="600px" runat="server" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" OnClientClick="getImageContent()"
    runat="server" Text="Button" OnClick="saveContent" />
<asp:HiddenField ID="HiddenField1" runat="server" />

投稿されたコードは私には機能しません:

function getImageContent() {
var editor = $find("txtEditor");
var editPanel = editor.get_editPanel();
var designPanel = editPanel.get_modePanels()[0];
var s = designPanel.get_content();

document.getElementById("HiddenField1").value = s;

}

行vareditor= $ find( "txtEditor")はnull値です。

4

1 に答える 1

3

サーバースクリプト()を使用して、生成されたClientID(のようなもの)を取得する必要がある可能性があります。ctl00_txtEditor<%=txtEditor.ClientID%>

HTMLEditor:

ハックっぽいソートですが、これにより、HTMLEditorコントロールのクライアント側にコンテンツがあるかどうかを判断する必要があります(サーバー側は経由で簡単に確認できますtxtEditor.Content

jQuery:

$('#<%=txtEditor.ClientID%>').find('iframe').eq(2).contents().find('body').html()

HTMLEditorExtender:

これは、コントロールを使用するよりHTMLEditorExtender推奨されるHTMLEditor

注:このページで説明されているHtmlEditorコントロールの代わりに、新しいHtmlEditorExtenderを使用することをお勧めします。HtmlEditorExtenderはHTML5を利用し、IE6以降で動作します。

jQuery:

$('#<%=txtEditor.ClientID%>').val()

またはJavaScript

document.getElementById('<%=txtEditor.ClientID%>').value
于 2012-10-23T15:14:41.267 に答える