JQuery тумблер не работает на существующих записях - PullRequest
0 голосов
/ 09 декабря 2011

У меня есть форма SP2007, которая называется editItem.Я обнаружил, что когда sharePoint отображает поля формы, существует атрибут title, который содержит содержимое атрибута fieldname SharePoint.

Моя проблема связана с некоторыми элементами управления в этой форме редактирования.У меня есть выпадающий элемент управления, называемый анонимным, который переключает видимость полей ввода имени и адреса электронной почты;однако, когда я редактирую существующую запись, в которой было выбрано «Да», она по-прежнему показывает поля ввода имени и адреса электронной почты, а не скрывает их в том виде, в котором они должны быть.

Кроме того, из-за того, что они теперь видны, кажется, что нет никакой разницы, если я изменю значение анонимного поля ...

Вот скрипт, который я написал:

<script type="text/javascript">
$(document).ready(function(){
  if $("select[title='anonymous'] option:selected").val() == "Yes" {

alert("$('select[title='anonymous']').val()"); 

     //$("tr.anon").hide();

  //} else {

    // $("[title='anonymous']").change(function(){
     //   $(".anon").toggle();
    // });
  }
 });
</script>

Вот источник из формы:

<tr><td width="190px" valign="top" class="ms-formlabel"><H3 class="ms-standardheader"><nobr>Anonymous<span class="ms-formvalidation"> *</span></nobr></H3></td><td width="400px" valign="top" class="ms-formbody"><span dir="none"><select name="ctl00$m$g_e959bdad_1c52_41a7_b23f_564bc84c2497$ff5_1$ctl00$DropDownChoice" id="ctl00_m_g_e959bdad_1c52_41a7_b23f_564bc84c2497_ff5_1_ctl00_DropDownChoice" title="anonymous" class="ms-RadioText">
                    <option selected="selected" value="Yes">Yes</option>
                    <option value="No">No</option>

                </select><br></span>Would you like to remain anonymous?</td></tr><tr class="anon"><td width="190px" valign="top" class="ms-formlabel"><H3 class="ms-standardheader"><nobr>Name</nobr></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"><nobr>Email</nobr></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></table></td></tr><tr><td class="ms-toolbar" nowrap><table><tr><td width="99%" class="ms-toolbar" nowrap><IMG SRC="/_layouts/images/blank.gif" width="1" height="18"></td><td class="ms-toolbar" nowrap>
        <TABLE cellpadding=0 cellspacing=0 width=100%><TR><TD align="right"  width=100% nowrap>
            <input type="button" name="ctl00$m$g_e959bdad_1c52_41a7_b23f_564bc84c2497$savebutton2$ctl00$diidIOSaveItem" value="OK" onclick="if (!PreSaveItem()) return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$m$g_e959bdad_1c52_41a7_b23f_564bc84c2497$savebutton2$ctl00$diidIOSaveItem&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))" id="ctl00_m_g_e959bdad_1c52_41a7_b23f_564bc84c2497_savebutton2_ctl00_diidIOSaveItem" accesskey="O" class="ms-ButtonHeightWidth" target="_self" />
        </TD> </TR>

Спасибо,

Ответы [ 2 ]

0 голосов
/ 10 декабря 2011

Вот рабочий код.Вы можете взглянуть на эту скрипку: http://jsfiddle.net/STvWX/

$(document).ready(function(){
  if ($("select[title='anonymous']").val() == "Yes") { 
     $("tr.anon").hide();
  }
  $("select[title='anonymous']").change(function(){
     $("tr.anon").toggle();
  });
});

Прежде всего, как сказал Джеймс, вам нужно обернуть условие.Затем проверьте значение и скройте tr, если val равен "Да".

Затем, за пределами условного , вам необходимо применить ваш обработчик изменений.Таким образом, он применяется независимо от того, истинно ли условие.

0 голосов
/ 09 декабря 2011

Ваш синтаксис испорчен.

if $("select[title='anonymous'] option:selected").val() == "Yes" {

Вы не указали свое состояние в скобках:

if ($("select[title='anonymous'] option:selected").val() == "Yes") {

Вам также не нужна часть option:selected.Вы можете просто получить val из выбора:

if ($("select[title='anonymous']").val() == "Yes") {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...