2014-02-15 5 views
0

유효성 검사 메시지가 잘 표시되고 "저장"단추가 유효성 검사를 통과함에 따라 "저장"단추가 변경되는 양식이 있습니다. 문제 없다.jQuery 유효성 검사 - 작동하지만 "제출"하지 않습니다.

그러나 양식은 제출되지 않습니다.

나는 근본이 없다고 생각합니다.) (

var CloudFormValidation = function() { 


var handleValidation = function() { 
    // for more info visit the official plugin documentation: 
    // http://docs.jquery.com/Plugins/Validation 

    var form2 = $('#formMain'); 
    var error2 = $('.alert-danger', form2); 
    var success2 = $('.alert-success', form2); 

    form2.validate({ 
     errorElement: 'span', //default input error message container 
     errorClass: 'help-block', // default input error message class 
     focusInvalid: false, // do not focus the last invalid input 
     ignore: "", 


     invalidHandler: function(event, validator) { //display error alert on form submit    
      success2.hide(); 
      error2.show(); 
      App.scrollTo(error2, -200); 
     }, 

     errorPlacement: function(error, element) { // render error placement for each input type 
      var icon = $(element).parent('.input-icon').children('i'); 
      icon.removeClass('fa-check').addClass("fa-warning"); 
      icon.attr("data-original-title", error.text()).tooltip({ 'container': 'body' }); 
     }, 

     highlight: function(element) { // hightlight error inputs 
      $(element) 
       .closest('.form-group').addClass('has-error'); // set error class to the control group 
     }, 

     unhighlight: function(element) { // revert the change done by hightlight 

     }, 

     success: function(label, element) { 
      var icon = $(element).parent('.input-icon').children('i'); 
      $(element).closest('.form-group').removeClass('has-error').addClass('has-success'); // set success class to the control group 
      icon.removeClass("fa-warning").addClass("fa-check"); 
     }, 

     submitHandler: function(form) { 
      success2.show(); 
      error2.hide(); 
     } 
    }); 


}; 




return { 
    //main function to initiate the module 
    init: function() { 
     handleValidation(); 
    } 

}; 

}; 경우

$("#btnSave").on("click", function() { 

     if ($("#formMain").valid()) { 
      var btn = $(this); 
      btn.button('loading'); //This works and fires when the form is valid 
      setTimeout(function() { 
       btn.button('reset'); 
      }, 3000); 
      $("#formMain").submit(); //FireBug says this is hit, but nothing happens 
     } 
    }); 

가 내 Validator의, 여기 참조 용입니다

답변

1

감사 Ostati와 존 S : 그렇지 않으면, 당신은 그것을 변경할 수 있습니다.

 submitHandler: function(form) { 
      success2.show(); 
      error2.hide(); 
      form.submit(); //Must be called here, 
     } 
0

일시적으로의 setTimeout 호출을 제거 할 수 있습니다, 다른이 또한 메커니즘을

$(this).closest("form").submit() 

을 제출하려고?

+0

안녕하세요, 시도했지만 아직 제출 작업이 없습니다. 아주 이상한. –

+0

클릭 핸들러에서 모든 행 (유효성 검사 포함)을 제거하고 submit 함수를 호출하면 어떨까요? – ostati

0

나는 양식을 submitHandler 방법으로 제출해야한다고 생각합니다.

당신이 시도 할 수 : 버튼이 제출 버튼이

submitHandler: function(form) { 
    $("#btnSave").button('loading'); 
    setTimeout(function() { $("#btnSave").button('reset'); }, 3000); 
    success2.show(); 
    error2.hide(); 
    form.submit(); 
} 

그런 경우에, 당신은 핸들러를 클릭하여 제거 할 수 있습니다. 오른쪽 랙에 저를 얻었다,

$("#btnSave").click(function() { 
    $("#formMain").submit(); 
}); 
+0

안녕하세요, 시도했지만 양식이 제출되지 않았습니다. 나는 또한 모든 버튼의 애니메이션을 삭제했습니다. –

+0

@ BahaiResearch.com - 답변을 업데이트했습니다. –

0

이 버튼을 설정 type="submit" 속성이 있는지 확인하십시오 : 그럼 내 처리기 제출

제출 마이 버튼 (단지)

$("#btnSave").on("click", function() { 
     $("#formMain").submit(); //Do this here to kick off the process 

     if ($("#formMain").valid()) { //If valid the plugin will submit for real 
      var btn = $(this); 
      btn.button('loading'); 
      setTimeout(function() { btn.button('reset'); }, 3000); 
     } 
    }); 

: 여기에 변경 사항이 내가 TI 작동하도록 만들어졌다 .

+1

이 질문에 대한 답변을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. –

+0

질문 작성자를 위해 작성하지는 않았지만 여기에있는 모든 가난한 영혼을 위해 bs.validator를 사용하여 제출하지 않은 양식이 왜 제출되지 않더라도 궁금합니다. 답을 얻기 위해 도움이되지 않는 군중들을 조직하십시오. – John

관련 문제