2011-02-17 12 views
0

私はSharePointWebControls:UserFieldをスペルチェックから除外する必要があるページレイアウトにします。それ以外の場合は、ユーザーが選択されるたびに多数のスペルミスがコントロールのコードビハインドで検出されます。sharepoint 2010のスペルチェックからフィールドを除外する方法は?

Sharepoint 2007では、この現象はexcludefromspellcheck = "true"を使用して実装できますが、これはSharepoint 2010では機能しないようです。同じ問題を抱えている人は誰ですか? SpellCheckEntirePage.jsに基づいて

答えて

1

、まだな方法であることが表示されます。

var elements=document.body.getElementsByTagName("*"); 
for (index=0; index < elements.length;++index) 
{ 
    if (null !=elements[index].getAttribute("excludeFromSpellCheck")) 
    { 
     continue; 
    } 
    // snipped - if (elements[index].tagName=="INPUT") 
    // snipped - else if (elements[index].tagName=="TEXTAREA") 
} 

しかし、それはおそらく、自動的にレンダリングされたHTMLにまでコピーしないようにexcludeFromSpellCheckは、UserFieldのプロパティではありません。レンダリングされると、UserFieldコントロールはいくつかの要素で構成されます。私はexcludeFromSpellCheckが最終的なHTMLにそれを作っているかどうかを見るためにソースを見ることを試みるでしょう。しかし、適切な要素の属性を設定するには、このようないくつかのjQueryを使用する必要があります:

$("(input|textarea)[id*='UserField']").attr("excludeFromSpellCheck", "true"); 
+0

jQueryを使用するのではなく、通常のjavascriptを使用してジョブを実行するようにしましたが、この方法ではレンダリングされたhtml要素のすべてに属性を設定しました。 – Stark

0

は、あなたがテキストエリアに「excludeContentFromSpellCheck」属性を「true」に設定することで、特定のフィールドのスペルチェックを無効にすることができますスペルチェックをしたくない入力コントロールがあります。

すべてのページレイアウトでこれを行いました。今、私はもはや偽陽性を得ることはありません。

解決策は、スペルチェックしたくないフィールドの周りにdivタグを追加し、divタグ内の要素に対して "excludeFromSpellCheck"を "true"に設定するjavascriptを追加することです。

私が見つけた解決策は、ここで説明されていますInaccurate Spell Check on SharePoint Publishing Pages

0

ジョーFurnerは私のために働いているこのソリューションを、掲載しました。
https://www.altamiracorp.com/blog/employee-posts/spell-checking-your-custom-lay

これは、ページ上のすべてのPeoplePickersを除外:

function disableSpellCheckOnPeoplePickers() { 
    var elements = document.body.getElementsByTagName("*"); 
    for (index = 0; index < elements.length; index++) { 
     if (elements[index].tagName == "INPUT" && elements[index].parentNode && elements[index].parentNode.tagName == "SPAN") { 
      var elem = elements[index]; 
      if (elem.parentNode.getAttribute("NoMatchesText") != "") { 
       disableSpellCheckOnPeoplePickersAllChildren(elem.parentNode); 
      } 
     } 
    } 
} 

function disableSpellCheckOnPeoplePickersAllChildren(elem) { 
    try { 
     elem.setAttribute("excludeFromSpellCheck", "true"); 
     for (var i = 0; i < elem.childNodes.length; i++) { 
      disableSpellCheckOnPeoplePickersAllChildren(elem.childNodes[i]); 
     } 
    } 
    catch(e) { 
    } 
} 
0

このコードあなたは人を置けば1時間のためのごみ値をピッカ再び人々をチェック値をピッカので、部分的にのみ働いています。

関連する問題