2011-12-09 98 views
0

我有一個名爲editItem的SP2007表單。我發現,當sharePoint呈現formfields時,有一個屬性標題 - 它包含SharePoint fieldname屬性的內容。jQuery切換不能在現有記錄上工作

我的問題是在這個編輯窗體中的一些控件。我有一個名爲anonymous的下拉控件,用於切換名稱和電子郵件輸入字段的可見性;但是,當我編輯已選擇「是」的現有記錄時,它仍會顯示名稱和電子郵件輸入字段,而不是按原樣隱藏它們。

另外,B/C,他們現在看到它似乎沒有,如果我改變匿名字段的值,以麥任何區別...

這是我寫的劇本:

<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> 

感謝,

回答

0

你的語法搞砸。

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") { 
+0

謝謝詹姆斯。你知道有哪些地方可以提高我的語法嗎? – jg100309

+0

不特別。任何JavaScript教程應該做的。 –

0

這是工作代碼。您可以在此琴來看一看:http://jsfiddle.net/STvWX/

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

首先,正如詹姆斯所說,你需要用條件。然後,檢查該值並在val爲「是」時隱藏tr

然後,以外的條件,您需要應用您的更改處理程序。這樣,無論條件是否爲真,它都可以應用。

+0

感謝您向我展示jsfiddle – jg100309