2013-05-22 2 views
0

전에 아약스를 많이 사용하지 않았으므로 jQuery Form plugin을 선택했습니다. 제 목표는 플러그인이 제출 한 양식을 가지고 양식을 제출하는 경우 양식 필드가 올바르게 채워 졌는지 확인하기 위해 유효성 검증을 사용하는 것입니다.Ajax 양식이 유효성 검사를 무시합니다.

유효성 확인을 제외한 위의 모든 작업이 유효합니다. '제출'을 클릭하면 유효성 검사가 잠시 표시되고 ajax 양식 스크립트에서 성공 호출을 설정하면 상자가 사라집니다. 제출을 보장하기 위해 필요한 추가 단계 경우 정지가있는 경우

var options = { 
    beforeSubmit: validation, 
    success: function() { 
     var url = '/includes/embed-topbar-login-account'; 
     $('#account').load(url, function() { 
      $('#account-options').fadeOut('slow'); 
     }); 
    } 
}; 

$('#login').ajaxForm(options); 

function validation() { 
    var prompt = '<div class="required-prompt"><small>This field is required.</small></div>'; 
    var promptEmail = '<div class="required-prompt"><small>Invalid email address.</small></div>'; 
    var required = true; 

     $('.required-prompt', this).remove(); 
     $('.required', this).each(function() { 
      if(!$(this).val()) { 
       $(this).after(prompt); 
       required = false; 
      } else { 
       $('.required-prompt', this).remove(); 
      } 
     }); 

    return required; 
} 

사람은 말해 줄 수 검증 반환 '거짓'(그것이 현재 않습니다).

+0

지정 shsould. 플러그인 설명서의 예제 페이지 유효성을 확인 했습니까? http://malsup.com/jquery/form/#validation – MasNotsram

+0

이 (가) $ ('# form')와 (과) 유사한 유효성 검사가 아닙니다. validate()? –

+0

나는 유효성 확인 코드와 함께 제출하기 전에 사용 해보았으며 이전과 동일하게 보여주고 여전히 제출합니다. 내 코드에서 이유를 볼 수 있습니까? – ccdavies

답변

0

당신은 당신이 beforeSubmit를 사용하여 해당 코드에 validate 메소드를 호출하지 않는 beforeSubmit

SOURCE Documentation

$('#login').ajaxForm({ 
    success: function() { 
     var url = '/includes/embed-topbar-login-account'; 
     $('#account').load(url, function() { 
      $('#account-options').fadeOut('slow'); 
     }); 
    }, 
    beforeSubmit: function(arr, $form, options) { 
    // The array of form data takes the following form: 
    // [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] 

    // return false to cancel submit     
    return validate(); //Assuming validate is your function doing validation. 

    } 
}); 
관련 문제