У меня есть форма редактирования SharePoint, где я хочу сделать одно из полей Y / N доступным только для чтения.Это поле переключает видимость двух других полей.Я преобразовал только для чтения в связанное поле метки.Если это поле, оканчивающееся на «_ff5_1», имеет значение «Да», то я хочу, чтобы два переключаемых поля были скрыты, если нет, то покажите их.
Вот код с моей первой попытки
if ($("span[id$=_ff5_1]").val() == "Yes") {
$("tr.anon").hide();
} else {
$("tr.anon").show();
}
Я подумал, что, возможно, пытаюсь сделать слишком много за один раз с помощью приведенного выше кода, поэтому я изменил его на следующий
$("span[id$='_ff5_1']") //select element
if $(this).val() ==='Yes' { //test val
$("tr.anon").hide(); // hide name & email rows
} else {
$("tr.anon").show();
}
Однако ни один из них не скрывает строки, если основанна значение поля Y / N.
UPDATE1 @Nicola: Я попробовал ваше предложение, но оно не сработало.Я считаю, что проблема в том, что поле ($ ("span [id $ = '_ff5_1']")) больше не является полем ввода - я преобразовал его в поле метки, чтобы сделать его доступным только для чтения.
$("span[id$='_ff5_1']").each(function() { //returns a collection of elements that must be iterated through using each
if (this.value == "Yes") { //test value
$("tr.anon").hide();
} else {
$("tr.anon").show();
}
});
Кроме того, я считаю, что поля, которые я пытаюсь скрыть, не являются родителями поля метки, но являются потомками поля метки.
Спасибо за ваш отзыв.
ОБНОВЛЕНИЕ2: Вот код src связанной метки и два текстовых поля, которые я хочу переключать видимость на основе.
<tr>
<td width="190px" valign="top" class="ms-formlabel"><H3 class="ms-standardheader">Anonymous</H3></td>
<td width="400px" valign="top" class="ms-formbody">
<span id="ctl00_m_g_e959bdad_1c52_41a7_b23f_564bc84c2497_ff5_1">Yes</span>
<br>Would you like to remain anonymous?</td>
</tr>
<tr class="anon">
<td width="190px" valign="top" class="ms-formlabel"><H3 class="ms-standardheader">Name</H3></td>
<td width="400px" valign="top" class="ms-formbody">
<span dir="none"><input name="ctl00$m$g_e959bdad_1c52_41a7_b23f_564bc84c2497$ff6_1$ctl00$ctl00$TextField" type="text" maxlength="255" id="ctl00_m_g_e959bdad_1c52_41a7_b23f_564bc84c2497_ff6_1_ctl00_ctl00_TextField" title="name" class="ms-long" /><br></span></td>
</tr>
<tr class="anon">
<td width="190px" valign="top" class="ms-formlabel"><H3 class="ms-standardheader">Email</H3></td>
<td width="400px" valign="top" class="ms-formbody">
<span dir="none"><input name="ctl00$m$g_e959bdad_1c52_41a7_b23f_564bc84c2497$ff7_1$ctl00$ctl00$TextField" type="text" maxlength="255" id="ctl00_m_g_e959bdad_1c52_41a7_b23f_564bc84c2497_ff7_1_ctl00_ctl00_TextField" title="email" class="ms-long" /><br></span></td>
</tr>
UPDATE3: Val () следует использовать только для получения значения входных элементов.B / c Я преобразовал свой элемент ввода в метку, я должен использовать .text ().http://api.jquery.com/text/
ЗАКЛЮЧИТЕЛЬНОЕ ОБНОВЛЕНИЕ:
$("span[id$='_ff5_1']").each(function() { //returns a collection of elements that must be iterated through using each
if ($(this).text() == "Yes") { //test value returned from non-input field
$("tr.anon").hide();
} else {
$("tr.anon").show();
}
});