2011-02-17 2 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

0

Вы можете отключить проверку орфографии для некоторых полей, установив «excludeContentFromSpellCheck» атрибут «истинный» в текстовой области и элементы управления вводом, которые вы не хотите проверять орфографией.

Я сделал это на всех макетах моей страницы. Теперь я больше не получаю ложные срабатывания.

Решение состоит в том, чтобы добавить тег div вокруг полей, которые вы не хотите проверять, и добавить javascript, который устанавливает «excludeFromSpellCheck» в «true» для элементов в теге div.

Решение я нашел описано здесь: 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

Этот код работает частично только, потому что если вы поставите люди Picker значения снова проверяя человек Picker значения мусора за один раз.

Смежные вопросы