2014-10-08 7 views
0

안녕하세요, 저는 클라이언트 측에서 자바 스크립트 코드를 통해 텍스트 상자를 비우고 있습니다.코드가 내용 자리 표시 자에서 작동하지 않습니다.

masterpage없이이 코드를 사용하면 완벽하게 작동하지만 master 페이지를 사용하면 작동하지 않습니다. 왜?

<script type="text/javascript"> 

    function clrCtrl() { 
     var control = "<%=txtpassword.ClientID %>"; 
     var control2 = "<%=txtConfirmpassword.ClientID %>"; 
     document.getElementById(control).value = ""; 
     document.getElementById(control2).value = ""; 

    } 
</script> 

아래 나는이 페이지에있는 모든 요소를 ​​찾는 기능을 JS 만들어 내 라디오 버튼과 드롭 다운리스트

<asp:RadioButtonList ID="RadioButtonList1" runat="server" CssClass="nbdcontent"  AutoPostBack="True" 
          RepeatDirection="Horizontal" Font-Bold="True" Font-Size="Medium"  onchange="clrCtrl()" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged"> 
          <asp:ListItem Value="0">CPMU</asp:ListItem> 
          <asp:ListItem Value="1">SPMU</asp:ListItem> 
          <asp:ListItem Value="2">SFTI</asp:ListItem> 
         </asp:RadioButtonList> 


<asp:DropDownList ID="ddlStates" runat="server" AutoPostBack="True" 
          CssClass="mytextbox" DataTextField="State" DataValueField="State_Id" Enabled="False" 
          OnSelectedIndexChanged="ddlStates_SelectedIndexChanged1" 
          onchange="clrCtrl()"> 
          <asp:ListItem Value="0">-Select-</asp:ListItem> 
         </asp:DropDownList> 
+0

자바 스크립트를 디버그하여 실행 여부를 확인할 수 있습니까? –

+0

아니요. 나는 어떻게해야합니까? – Mitra

답변

0

입니다. 만약 요소 (control) id가 ct100_ContentPlaceholder1_ (또는 이와 비슷한 것)이라면, master 또는 conten 페이지의 내용이 아니라면, getElement 함수는 즉시 제어/요소를 반환 할 것이고, 완전한 페이지를 반복하지 않을 것이다. 그렇지 않으면 검색 할 것이다.

function getElement(id) { 
    if (document.getElementById(id) == null) { 
     var pp = document.getElementsByTagName('*'); 
     for (var i = 0; i < pp.length; i++) { 
      if (pp[i].id != null) { 
       var ele = pp[i].id; 
       if (ele.indexOf('_') > -1) { 
        //spliter is _ 
        var tt = ele.split('_'); 
        if (tt[tt.length - 1] == id) { return pp[i]; } 
       } 
       if (ele.indexOf('$') > -1) { 
        //spliter is $ 
        var tt = ele.split('$'); 
        if (tt[tt.length - 1] == id) { return pp[i]; } 
       } 
      } 
     } 
     // element not found, return nothing 
     return null; 
    } else { 
     // element is not in contentplaceholder 
     return document.getElementById(id); 
    } 
} 

페이지의 모든 요소를 ​​통과합니다. 그것은 한 가지 매우 중요

function clrCtrl() { 
     getElement('txtpassword').value=''; 
     getElement('txtConfirmpassword').value=''; 
} 

을 :하지만 그런 다음 당신은 당신의 코드에서 사용할 수있는 사용하지 않는 _ 문자를 컨트롤 (들) ID에. 조건 일 경우 functionnull을 반환합니다. 예. textboxidtxt_password 인 경우 functionnull을 반환하며 사용자가 제어 할 수 없습니다.

p.s. 약한 영어를 유감스럽게 생각합니다.