2009-09-23 2 views
0

Я использую этот скрипт JQuery Validation представить свою форму (ы), но мне нужна помощь тонкой настройки, чтобы отобразить сообщение, и снова показать форму (после отправки)JQuery Validation Ajax Submit помощь

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

Хмм я спрятался, но сообщение не показывает .. Nor не делает его спасти ... нет JS ошибки в FF либо, просто ничего не делают .. – SoulieBaby

+0

Ahh Я понял .. Я изменил непрозрачность и высоту, чтобы сказать 1, а css для отображения inline .. работает как шарм. Спасибо за вашу помощь !! :) – SoulieBaby

+1

О, извините, в моей спешке я пропустил, что внутри функции оживления есть обратный вызов! – Colin