2009-09-23 2 views
0
나는 내 양식 (들)을 제출이 jQuery를 검증 스크립트를 사용하고

제출,하지만 난 그게jQuery를 확인 아약스 도움

메시지를 표시하고, (제출 후) 양식을 다시 보여 조정 도움이 필요 http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/

^^ 강령

http://www.position-relative.net/creation/formValidator/demoSubmit.html

^^ 데모

당신이 데모를 보면, 녹색 메시지를 표시하고 양식을 다시 표시하고 싶습니다. (숨기지 않고) .. 스크립트를 어디에서 바꿀지 알 수 없습니다. 여기 JS 코드의 스 니펫이 있습니다. 아약스 제출 기능 :

submitForm: function (caller) { 
     if ($.validationEngine.settings.ajaxSubmit) { 
      $.ajax({ 
       type: "POST", 
       url: $.validationEngine.settings.ajaxSubmitFile, 
       async: true, 
       data: $(caller).serialize(), 
       beforeSend: function() { 

       }, 
       success: function (data) { 
        if (data == "true") { // EVERYTING IS FINE, SHOW SUCCESS MESSAGE 
         $(caller).css("opacity", 1) 
         $(caller).animate({ 
          opacity: 0, 
          height: 0 
         }, 
         function() { 
          $(caller).css("display", "none") 
          $(caller).before("<div class='ajaxSubmit'>" + $.validationEngine.settings.ajaxSubmitMessage + "</div>") 
          $.validationEngine.closePrompt(".formError", true) 
          $(".ajaxSubmit").show("slow") 
          if ($.validationEngine.settings.success) { // AJAX SUCCESS, STOP THE LOCATION UPDATE 
           $.validationEngine.settings.success && $.validationEngine.settings.success(); 
           return false; 
          } 
         }) 
        } else { // HOUSTON WE GOT A PROBLEM (SOMETING IS NOT VALIDATING) 
         data = eval("(" + data + ")"); 
         errorNumber = data.jsonValidateReturn.length 
         for (index = 0; index < errorNumber; index++) { 
          fieldId = data.jsonValidateReturn[index][0]; 
          promptError = data.jsonValidateReturn[index][1]; 
          type = data.jsonValidateReturn[index][2]; 
          $.validationEngine.buildPrompt(fieldId, promptError, type); 
         } 
        } 
       } 
      }) 
      return true; 
     } 
     if ($.validationEngine.settings.success) { // AJAX SUCCESS, STOP THE LOCATION UPDATE 
      $.validationEngine.settings.success && $.validationEngine.settings.success(); 
      return true; 
     } 
     return false; 
    }, 

답변

1

업데이트 문은 같은 것을 볼 수 있다면 ..

if (data == "true") { // EVERYTING IS FINE, SHOW SUCCESS MESSAGE 
    $(caller).before("<div class='ajaxSubmit'>" + $.validationEngine.settings.ajaxSubmitMessage + "</div>") 
    $.validationEngine.closePrompt(".formError", true) 
    $(".ajaxSubmit").show("slow") 
    if ($.validationEngine.settings.success) { // AJAX SUCCESS, STOP THE LOCATION UPDATE 
    $.validationEngine.settings.success && $.validationEngine.settings.success(); 
    return false; 
    } 
} 
+0

흠 나는 것을 숨겨하지만, 메시지가 표시되지 않습니다를 않으며 ... 더 JS를 저장하지 않습니다 FF 중 하나라도 오류가 발생하면 그냥 아무 것도하지 않습니다. – SoulieBaby

+0

아 .. 알았어요. 불투명도와 높이가 1로 바뀌고 CSS가 인라인으로 표시되도록 변경되었습니다. 지금은 매력처럼 작동합니다. 도움을 주셔서 감사합니다 !! :) – SoulieBaby

+1

오, 미안 해요, 서둘러서 나는 애니메이션 기능 안에 콜백이 있다는 것을 놓쳤습니다! – Colin