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 回答