2011-02-17 80 views
0

我有一個SharePointWebControls:UserField在頁面佈局中需要從拼寫檢查中排除,否則無論何時選擇一個用戶時,都會在代碼隱藏中檢測到大量拼寫錯誤。如何從sharepoint 2010中的拼寫檢查中排除字段?

似乎在Sharepoint 2007中,這種行爲可以通過使用excludefromspellcheck = "true"來實現,但這似乎不適用於Sharepoint 2010.有沒有人遇到同樣的問題並找到解決方法?

回答

1

基於SpellCheckEntirePage.js,這似乎仍然是這樣:

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") 
} 

但excludeFromSpellCheck不是UserField的屬性,所以它可能不會自動向下複製到呈現的HTML。呈現時,UserField控件由多個元素組成。我會嘗試查看查看源代碼,以查看excludeFromSpellCheck是否將其添加到最終的HTML中。但要設置相應的元素屬性,您可能需要使用一些jQuery的是這樣的:

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

花了一些戳,以獲得正常的JavaScript來做這項工作,而不是使用jQuery,但這種方法工作設置所有呈現的HTML元素的屬性。 – Stark 2011-03-07 16:31:24

0

您可以通過文本區域設置「excludeContentFromSpellCheck」屬性爲「true」禁用某些領域的拼寫檢查並輸入你不想被拼寫檢查的控件。

我在我的所有頁面佈局上都這樣做了。現在我不再有誤報。

解決方法是在不希望拼寫檢查的字段周圍添加div標籤,並添加一個javascript,將div標籤中的元素的「excludeFromSpellCheck」設置爲「true」。

我找到了解決方案說明如下: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

此代碼工作僅部分,因爲如果你把人員選取器值再次檢查人員選取垃圾值一次。