/ / Пошук наступного елемента введення після тегу коментаря - jquery, sharepoint

Пошук наступного елемента вводу після тегу коментарів - jquery, sharepoint

Дуже схоже на запитання, поставлене тут: Як я можу знайти елементи html, які містять певний текст у коментарі html?

Я шукаю назву наступного введення формипісля коментаря, що містить певний текст. Форма автоматично генерується SharePoint, тому маніпулювання/додавання ідентифікаторів неможливе. Ось приклад фрагмента форми...

<tr>
<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
<h3 class="ms-standardheader">
<nobr>Some Form Field</nobr>
</h3>
</td>
<td valign="top" class="ms-formbody">
<!--  FieldName="My Field Name" FieldInternalName="MyFieldName" FieldType="SPFieldText"  -->
<span dir="none">
<input name="ctl00$PlaceHolderMain$idDocSetDisplayFormWebPart$ctl00$ctl02$ctl08$ctl00$ctl00$ctl04$ctl00$ctl00$TextField" type="text" maxlength="255" id="ctl00_PlaceHolderMain_idDocSetDisplayFormWebPart_ctl00_ctl02_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_TextField" title="Field Name" class="ms-long ms-spellcheck-true" /><br />
</span>
</td>

Примітка:SharePoint надає вам FieldName, FieldInternalName і FieldType у коментарі HTML перед фактичним введенням у форму. (Це також дає введенням божевільне ім’я та ідентифікатор, але це інша тема.)

Я використовую ajax, щоб отримати дані з іншого елемента, щоб попередньо заповнити певні поля цієї форми. Я переглядаю поля форми та можу успішно знайти відповідний коментар за допомогою...

function fnFindThisComment(){
var myFieldInternalName = "FieldInternalName="MyFieldName""; // hardcoded for example purposes
$("*").contents().filter(function(){ return this.nodeType == 8; }).each(function(i, e){
match = this.innerHTML.match(myFieldInternalName) ;
if (match){alert(match);}  });

Проблема в тому, що я не можу отримати ім’я чи ідентифікатор поля введення. Я спробував численні варіанти «myInputName = $(this).nextAll(»input»)).attr(«name»)», але він завжди з’являється як невизначений.

Що тут я роблю?

Відповіді:

0 для відповіді № 1

Я знайшов використання nobr простіше в більшості випадків.

$("nobr:contains("Some Form Field")").closest("tr").find("input").attr("id");

Це забезпечує керування формою без використання спеціальних функцій і тегів коментарів. Будь ласка, зверніть увагу, що поля вибору "Особа" дещо складніші, візьміть Плагін SPServices jQuery для роботи з тими (та іншими речами).