0
<ItemTemplate>
   <asp:TextBox ID="txtReviewM" OnChange="javascript:HandlerCodeTextChange(this); 
         Text='<%# Bind("ch_slcode") %>' runat="server" Width="100%" Columns="50" 
         AutoPostBack="true"> </asp:TextBox>
   <asp:HiddenField ID="hidempCode" runat="server" />
   <asp:HiddenField ID="hidempName" runat="server" />
   <ajaxtoolkit:autocompleteextender id="aceHandler2" runat="server" 
        targetcontrolid="txtReviewM"   usecontextkey="true" completionsetcount="10" 
        completioninterval="500" enablecaching="false"  minimumprefixlength="1" 
        servicemethod="GetEmployee" firstrowselected="true" 
        completionlistcssclass="AutoExtender"
        completionlistitemcssclass="AutoExtenderList" 
        completionlisthighlighteditemcssclass="AutoExtenderHighlight">
   </ajaxtoolkit:autocompleteextender>
</ItemTemplate>

これは私のJavascript関数です

function HandlerCodeTextChange(txtBox) {
   if (txtBox.value.indexOf(':') == "-1") {
      txtBox.value = "";
      txtBox.focus();
      document.getElementById('<%=hidempCode.ClientID%>').value = "";
      document.getElementById('<%=hidempName.ClientID%>').value = "";
   }
   else {
      var code = txtBox.value.split(':');
      document.getElementById('<%=hidempCode.ClientID%>').value = code[0];
      document.getElementById('<%=hidempName.ClientID%>').value = code[1];
   }
}

隠しフィールドがjavascriptで見つかりません、どうすればそれを達成できますか?

4

1 に答える 1

0

スパンタグの魔法を使用します。この切望された機能により、ページがASP.Netによってレンダリングされたときに、IDが破損しません。非表示のフィールドをこのようなスパンタグでサンドイッチします。

<ItemTemplate>
  <span id='SpanHid'>
   <asp:HiddenField ID="hidempCode" runat="server" />
  </span>   
</ItemTemplate>
  <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="GetHidden();" />

ベアボーンJavaScript

 <script type="text/javascript">

        function GetHidden()
        {

         var elm = document.getElementById("SpanHid");
            if (elm!==null)
            {

              var hiddenfield = elm.children[0].id;
              //do stuff with it
              }

          }

    </script> 

あなたがJqueryを検討するなら、あなたはこのワンライナーを気に入るはずです

 <script type="text/javascript">
   function GetHidden()
       {
        var hiddenfield=$('#SpanHid >input');
           //then do stuff with it
        }
       </script> 

GetHidden()の呼び出し方法は、ロジックによって異なります。

于 2013-02-25T11:23:54.540 に答える