2012-05-23 7 views
0

제출 한 양식을 입력하지 않으면 오류 메시지가 표시되는 양식에이 문제가 있습니다. 사용자가 오류 메시지를보고 양식을 다시 가지고 다시 채울 수있는 옵션이 필요합니다. 내가 분명하게 설명 할 수있는 것처럼 I 느낌, 그것을 직접 확인 : www.insead4sq.com양식 다시 가져 오기

    <form method="post" action="default.asp?Process=add" id="SIGNUPFORM"><a href="#" name="signup"></a> 
         <fieldset> 
          <p> 
           <label>Name</label> 
           <input type="text" name="FIRSTNAME" id="FIRSTNAME" size="55" value="" /> 
          </p> 
          <p> 
           <label>Surname</label> 
           <input type="text" name="LASTNAME" id="LASTNAME" size="55" value="" /> 
          </p> 
          <p> 
           <label>Email Address</label> 
           <input type="text" name="EMAILADDRESS" id="EMAILADDRESS" size="55" value="" /> 
          </p> 
          <p> 
           <label>Password</label> 
           <input type="password" name="PASSWORD" id="PASSWORD" size="55" value="" /> 
          </p> 
          <p> 
           <label>Hometown</label> 
           <input type="text" name="CITY" id="CITY" size="55" value="" /> 
          </p> 
          <p> 
           <input type="button" name="signup" value="Sign Up" class="submit" /> 
          </p> 
         </fieldset> 
        </form> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $("[name='signup']").click(function() { 
      $.ajax({ 
       type: "POST", 
       data: $("#SIGNUPFORM").serialize(), 
       url: "default.asp?Process=add", 
       success: function(output) { 
       $('#SIGNUPFORM').html(output) 
       }, 
       error: function(output) { 
       $('#SIGNUPFORM').html(output); 
       } 
      }); 
    }); 
    $(function update() { 
     $.ajax({ 
      type: "GET", 
      url: 'default.cs.asp?Process=TotalMembers', 
      timeout: 2000, 
      success: function(data) { 
       $(".totalmembers").html(data); 
       window.setTimeout(update, 5000); 
      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
       $(".totalmembers").html('.'); 
       window.setTimeout(update, 60000); 
      } 
     }); 
    }); 
}); 
</script> 
+1

'$ ("[name = 'signup']")'- 클래스를 실제로 사용하십시오. 여러분이하는 일은 문서의 모든 요소를 ​​반복 할 필요가 있기 때문에 엄청나게 느립니다. – ThiefMaster

답변

0

오류 발생시 텍스트 오류 메시지가 표시된다고 가정 해보십시오.

<div id="errorMessage" style="display: none"></div> 

그리고 오히려 양식을 제거하는 것보다, 거기에 위의 DIV에게 오류 메시지를 표시하도록 error 처리기를 변경 : 모든

먼저, 페이지로드에 보이지 않는 페이지에 div를 추가 :

error: function(output) { 
    $('#errorMessage').html(output).show(); 
} 
+0

그냥 시도했지만 오류 메시지도 jquery에 의해 성공으로 간주되기 때문에이 작동하지 않을 것이다. – user1393545

+0

이 경우,'output'의 어떤 부분에 문제가 있는지 알 수 있습니까? –

+0

오류 또는 성공 메시지 (default.cs.asp? Process = Add2Member)가있는 다른 페이지로 코드를 보냅니다. – user1393545

0

JQuery Validate을 미리 만들어 사용하기 쉽게하지 않을까요? 예를 들어 CSS를 변경할 수 있도록 필드에 클래스 "오류"를 추가합니다.

0

일을하는 가장 좋은 방법은 아닙니다. 그러나 이것이 작동하도록하려면, 에러 함수를 다음과 같이 변경하십시오.

$('#SIGNUPFORM').prepend($('<div></div>').attr({id:'dynamicResponse'}).append(output)) 
관련 문제