获取jQuery的SharePoint表单域ID

时间:2011-12-07 15:49:58

标签: jquery sharepoint

我写了一个脚本来切换一些SharePoint表单域。我已经让它们在页面加载时隐藏,但我无法让它们显示,因为我不知道如何确定formfield控件的id将是什么。

我曾想过在请求类型行中添加一个id,但我怀疑它会有什么用,因为它是控件本身,而不是它所占用的tr变化。有什么建议吗?

实际上,如果我能想出一种方法来获取SharePoint:FormField的fieldname属性,那将是我首选的方法。

<script type="text/javascript">
$(document).ready(function(){

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

  $("#ff5{$Pos}").change(function(){
     $(".anon").toggle();
  });

  $("#ff3{$Pos}").change(function(){
     $("#ff4{$Pos}").toggle();

  });
});
</script>

<tr>
    <td width="190px" valign="top" class="ms-formlabel">
        <H3 class="ms-standardheader">
            <nobr>Request Type<span class="ms-formvalidation"> *</span></nobr>
        </H3>
    </td>
    <td width="400px" valign="top" class="ms-formbody">
        <SharePoint:FormField runat="server" id="ff3{$Pos}" ControlMode="New" FieldName="requestType" __designer:bind="{ddwrt:DataBind('i',concat('ff3',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@requestType')}"/>
        <SharePoint:FieldDescription runat="server" id="ff3description{$Pos}" FieldName="requestType" ControlMode="New"/>
    </td>
</tr>
<tr class="reqDet">
    <td width="190px" valign="top" class="ms-formlabel">
        <H3 class="ms-standardheader">
            <nobr>Request Details</nobr>
        </H3>
    </td>
    <td width="400px" valign="top" class="ms-formbody">
        <SharePoint:FormField runat="server" id="ff4{$Pos}" ControlMode="New" FieldName="requestDetails" __designer:bind="{ddwrt:DataBind('i',concat('ff4',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@requestDetails')}"/>
        <SharePoint:FieldDescription runat="server" id="ff4description{$Pos}" FieldName="requestDetails" ControlMode="New"/>
    </td>
</tr>

非常感谢!

2 个答案:

答案 0 :(得分:2)

那些看起来很时髦的ID,你确定它们有效吗?如果是,那么你将需要使用此方法从javascript / jQuery访问FormField控件(或任何服务器端控件):

var myFormField = $("#<%= #ff5{$Pos}.ClientID %>");

答案 1 :(得分:0)

使用多种方式进行jquery选择,如下所示。这甚至可以在您拥有外部JavaScript文件时使用

var stDateField = $(":input[title='Start Time']").val();