0

次のような奇妙な共有ポイントのテキストフィールドがあります。

<div class="ms-taxonomy-fieldeditor ms-taxonomy-fieldeditor-standard ms-taxonomy-writing" title="Category" style="width: 364px;">


<div id="ctl00_PlaceHolderMain_EditModePanel5Medium_NewsCategoryMedium_ctl02editableRegion" contenteditable="true" role="textbox" aria-autocomplete="both" aria-haspopup="true" aria-multiline="true" class="ms-rtestate-write ms-taxonomy-writeableregion ms-inputBox ms-inputBoxActive" disableribboncommands="True" allowmultilines="false" restrictpastetotext="True" rtedirty="false" style="">
<span class="valid-text" title="">Communications</span>;&nbsp;&#8203;
<span id="ms-rterangecursor-start"></span>
<span id="ms-rterangecursor-end">
</span>
</div>
</div>

ASPX ファイルでは、次のようになります。

<PublishingWebControls:EditModePanel ID="EditModePanel5Medium" runat="server" PageDisplayMode="Edit">
     <Taxonomy:TaxonomyFieldControl  FieldName="NewsCategory" runat="server" id="NewsCategoryMedium" />
</PublishingWebControls:EditModePanel>

テキストボックスに挿入されたテキストは.Valid-text要素に追加されるため、理由はわかりません..テキストボックスが変更/フォーカスされているかどうかを確認し、.valid-text含まれているかどうかを確認して、「こんにちは世界」と言いましょう。

これまでにこれを試しましたが、うまくいきませんでした。

    $(".ms-taxonomy .ms-taxonomy-fieldeditor").change(function () {
        var Text = $(".ms-taxonomy .ms-taxonomy-fieldeditor .valid-text").text();

        if (Text == "Hello World") {
            // do this
        }


    });

Tymeのソリューションも試しましたが、運もありません:(

    $(".ms-taxonomy .ms-taxonomy-fieldeditor").blur(function () {
        var text = $(".ms-taxonomy .ms-taxonomy-fieldeditor .valid-text").text();
        if (text.indexOf('Group Wide') != -1) {
            alert("test");
        }


    });

また試した

    $(".ms-taxonomy .ms-taxonomy-fieldeditor").on("blur", function () {
        var text = $(".ms-taxonomy .ms-taxonomy-fieldeditor .valid-text").text();
        alert(text);
        if (text.indexOf('Group Wide') != -1) {
            alert("test");
            $("#news-text").show();
        }
    });

ここにjsfiddleがあります:

http://jsfiddle.net/wdjvy/

どんな種類の助けも大歓迎です!

4

2 に答える 2

1

.change()コンテンツの編集可能な div では起動しません。使用してみてくださいblur()

$(".ms-taxonomy .ms-taxonomy-fieldeditor").blur(function () {
    var Text = $(this).text();

    if (Text == "Hello World") {
        // do this
    }


});

次の形式を使用して、ID を介して ASP.NET コントロールを参照することもできます (JS が同じファイルにある場合)。

$("#<%= EditModePanel5Medium.ClientID %>")
于 2013-06-03T14:26:14.913 に答える
-2

以下を使用します。

angular.element(document).ready(function () {
    jQuery('.ms-taxonomy .ms-taxonomy-fieldeditor[title="YourFieldTitle"]').text();
}
于 2016-05-31T13:03:09.133 に答える