Как получить входное значение из текстового поля редактора людей sharepoint (не проверенное значение) через js? - PullRequest
0 голосов
/ 20 июля 2011

У меня проблема с получением входного значения из редактора людей sharepoint через js.

обычно мы можем получить значение из этого элемента управления с помощью следующих кодов:

 var user;
    var pe = document.getElementById('<%=peStaffAccount.ClientID %>').getElementsByTagName('div');
    var i;
    var peopleEnt;
    for (i in pe) {
        if (pe[i].id != null) {
            if (pe[i].id == 'divEntityData' && pe[i].description != null) {
                peopleEnt = pe[i]
            }
        }

    }
// this is the value from this textbox but only after we click checked user
alert(peopleEnt .description)

мой вопросесть, когда я ввожу какое-то значение в это текстовое поле напрямую, как я могу получить это значение?обратитесь к изображению ниже, мое входное значение .. Я хочу получить это ... enter image description here

Ответы [ 3 ]

1 голос
/ 21 июля 2011

Работа со сборщиком людей в javascript довольно ужасна. Фактический элемент управления, который вы вводите, на самом деле является редактируемым содержимым div. Он будет иметь идентификатор, который является идентификатором вашего элемента управления, за которым следует _upLevelDiv. Вам нужно будет это схватить, а затем разобрать, что внутри.

Код, который вы разместили, на самом деле имеет дело с вложенными элементами div, созданными при разрешении сущности. Эти элементы содержатся в upLevelDiv.

Если у вас есть только текст в элементе управления, как показано на скриншоте, то это довольно просто. Если у вас есть сочетание текста и разрешенных объектов, то это будет сложнее, так как в div будет текст и html.

ПРИМЕЧАНИЕ. Все вышесказанное относится только к IE, в других браузерах используется текстовая область (которая скрыта в IE).

0 голосов
/ 21 июля 2011

Используйте следующее, чтобы исследовать визуализированную страницу:

  1. Используйте 'View Source', чтобы убедиться, что getElementById ('<% = peStaffAccount.ClientID%>') правильно заменен сервером с действительным ClientID.

  2. Используйте отладчик браузера (F12 в IE9, Инструменты разработчика в Chrome), чтобы проверить DOM на наличие элемента по этому ClientID

  3. Используя те же инструменты, следите за любой ошибкой сценария, сообщаемой инструментами отладки (которые в других случаях игнорируются браузерами).

0 голосов
/ 20 июля 2011

Я не уверен, правильно ли я понял вопрос.

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

    yourTextField.onKeyPress = function(){
          var txt = yourTextField.value;
    }
...