2014-02-26 1 views
0

저는 ASP.NET에서 초보자입니다. 이제 2 페이지 : 마스터 및 하위 페이지 (콘텐츠 페이지)가 있습니다. 하위 페이지에서 사용자 입력을 서버에 제출하는 데 사용될 html 양식을 작성합니다. 나는 asp 단추를 사용하여 제출하지만 자바 스크립트를 실행하여 사용자의 입력을 검증합니다. 맨 아래에있는 레이블은 다시 게시 여부를 확인하는 데 사용됩니다. 항상 제출 단추를 클릭하면 페이지가 새로 고쳐져도 "거짓"으로 표시됩니다. 내가 여기서 뭘 잘못하고 있는지 모르겠다. 또한 서버에 제출 된 텍스트 상자에 사용자의 모든 정보를 표시하려고합니다. 당신이 명확한 설명으로 나를 도울 수 있기를 바랍니다. 고맙습니다.ASP.NET POSTBACK이 contentplaceholder에서 작동하지 않습니다.

1/마스터 페이지 :

2/어린이 페이지 (콘텐츠 페이지) :

여기
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder" Runat="Server"> 
<div class="row"> 
     <div class="box"> 
      <div class="col-lg-12"> 
       <hr> 
       <h2 class="intro-text text-center">Contact <strong>Mon Ami Cafe Restaurant</strong> 
       </h2> 
       <hr> 
      </div> 
      <div class="col-md-8" id="map-canvas"> 
       <!-- Embedded Google Map using an iframe - to select your location find it on Google maps and paste the link as the iframe src. If you want to use the Google Maps API instead then have at it! --> 
       <!--iframe width="100%" height="400px" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=14291+S+Euclid+St,+Garden+Grove,+CA+92843&amp;aq=&amp;sll=33.754949,-117.938489&amp;sspn=0.010437,0.021136&amp;ie=UTF8&amp;hq=&amp;hnear=14291+S+Euclid+St,+Garden+Grove,+California+92843&amp;t=m&amp;z=14&amp;ll=33.754949,-117.938489&amp;output=embed"></!--iframe><br /><small><a href="https://maps.google.com/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=14291+S+Euclid+St,+Garden+Grove,+CA+92843&amp;aq=&amp;sll=33.754949,-117.938489&amp;sspn=0.010437,0.021136&amp;ie=UTF8&amp;hq=&amp;hnear=14291+S+Euclid+St,+Garden+Grove,+California+92843&amp;t=m&amp;z=14&amp;ll=33.754949,-117.938489" style="color:#0000FF;text-align:left">View Larger Map</a></small--> 
      </div> 

      <div class="col-md-4"> 
       <h5>Phone:</h5> 
       <p><strong>*******</strong> 
       </p> 
       <h5>Email:</h5> 
       <p><strong>*******</strong> 
       </p> 
       <h5>Address:</h5> 
       <p><strong>*******</strong> 
       </p> 
      </div> 
      <div class="clearfix"></div> 
     </div> 
    </div> 

    <div class="row"> 
     <div class="box"> 
      <div class="col-lg-12"> 
       <hr> 
       <h2 class="intro-text text-center">Contact 
       </h2> 
       <hr> 

       <form name="ContactForm" method="post"> 
        <div class="row" id="ContactForm"> 
         <div class="form-group col-lg-4"> 
          <label>Name</label> 
          <input type="text" id="NAME" class="form-control"> 

         </div> 
         <div class="form-group col-lg-4"> 
          <label>Email Address</label> 
          <input type="text" id="EMAIL" class="form-control"> 

         </div> 
         <div class="form-group col-lg-4"> 
          <label>Phone Number</label> 
          <input type="text" id="PHONE" class="form-control"> 

         </div> 
         <div class="clearfix"></div> 
         <div class="form-group col-lg-12"> 
          <label>Message</label> 
          <textarea id="MSG" class="form-control" rows="6"></textarea> 

         </div> 
         <div class="form-group col-lg-12"> 
          <input type="hidden" name="save" value="contact"> 
          <asp:Button ID="btnSubmit" runat="server" OnClientClick="return validateForm();" Text="Submit"/> 
         </div> 
        </div> 
       </form> 
      </div> 
     </div> 
    </div> 

    <!--The output information will be here --> 
    <p><asp:Label id="lbl1" runat="server" /></p> 
</asp:Content> 

내 스크립트 @Chia입니다 ... :

<script> 
    function validateName() { 
     var x = document.getElementById("NAME").value; 
     if (x == null || x == "") { 
      alert("Name must be filled out"); 
      return false; 
     } 
     else 
      return true; 
    } 

    function validateEmail() { 
     var y = document.getElementById("EMAIL").value; 
     var atpos = y.indexOf("@"); 
     var dotpos = y.lastIndexOf("."); 
     if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= y.length) { 
      alert("Not a valid e-mail address"); 
      return false; 
     } 
     else 
      return true; 
    } 

    function validatePhone() { 
     var formatForm = /^[1-9]\d{9}$/; 
     var z = document.getElementById("PHONE").value; 
     if (z.length == 0) { 
      alert("Phone must be filled out"); 
      return false; 
     } 
     else if (z.length < 10 || z.length > 10 || !(z.match(formatForm))) { 
      alert("Not a valid phone number"); 
      return false; 
     } 
     else 
      return true; 
    } 

    function validateMess() { 
     var t = document.getElementById("MSG").value; 
     if (t == null || t == "") { 
      alert("Pleave leave your message"); 
      return false; 
     } 
     else 
      return true; 
    } 

    function validateForm() { 
     if (validateName()) { 
      if (validateEmail()) { 
       if (validatePhone()) { 
        if (validateMess()) { 
         //alert("Submitted Sucessfully"); 
         return true; 
        } 
       } 
      } 
     } 
     return false; 
    } 
</script> 
+0

set autopostback = "true" –

+0

PostBack에서 버튼 클릭을 처리하기 위해 CodeBehind에 코드를 작성 했습니까? MasterPage에 이미 Form 태그가 있습니까? – Alexander

+0

@ChiragSutariya 어디에서 해당 기능을 설정해야합니까? – user3355041

답변

1

당신은 추가해야합니다 클래스 뒤에 코드에서 이벤트를 호출하는 asp 버튼에 대한 onclick 속성. 예를

<asp:Button ID="btnSubmit" runat="server" OnClientClick="return validateForm();" OnClick="btnSubmit_Click" Text="Submit"/> 

를 들어 당신이 당신의 onclientclick 속성을 유선과 ValidateForm는 부울 값을 반환되기 때문에 이벤트

protected void btnSubmit_Click(object sender, System.EventArgs e) 
{ 
    // Do stuff here after postback 
} 

을 트리거 것이다, 다음이 제대로 만 onclick 이벤트는 경우에 발생 할 수 있습니다 validateForm 함수는 true를 반환합니다.

+0

정답입니다. – naveen

관련 문제