2012-05-03 11 views
0

특정 필드에서 서버 측 및 클라이언트 측 유효성 검사가 모두 필요한 양식이 있습니다. jquery 유효성 검사 플러그인을 사용하여 클라이언트 측 유효성 검사를 수행하고 있습니다. 아래 코드는 동일합니다.필드 유효성 검사 - 서버 측과 클라이언트 측 모두

$('#createapp').validate({ 
    rules: { 
     appname: { 
     minlength: 8, 
     required: true 
     }, 
     apptitle: { 
     required: true 
     } 
    }, 
    highlight: function(label) { 
     $(label).closest('.control-group').addClass('error'); 
    }, 
    success: function(label) { 
     label 
      .text('OK!').addClass('valid') 
      .closest('.control-group').addClass('success'); 
    } 
    }); 

사용자가 입력하려고하는 appname이 이미 DB에 있는지 확인해야합니다. 나는이 빨간색 필드 제어 할 수 있지만이 코드

$('#appname').focusout(function(){ 
    $.ajax({ 
     type: "POST", 
     url: "<?php echo base_url();?>index.php/app/application/check_app", 
     data: "appname="+$("#appname").val(), 
     success: function(msg){ 

      if(msg == "false") 
      { 
       var controlDiv = $('#appname').closest('.control-group'); 
        controlDiv.addClass('error'); 
        controlDiv.removeClass('success'); 
      } 
      else 
      { 
       var controlDiv = $('#appname').closest('.control-group'); 
        controlDiv.addClass('success'); 
        controlDiv.removeClass('error'); 
      } 
     } 
    }); 
}); 

를 사용하여 검사를 수행 아약스를 사용하고 있지만 양식 제출을 중단하지 않습니다. 나는 오류를 확인하고 반환하기 위해 서버 측의 논리를 복제하고 싶지 않습니다.

앱 이름이 이미 사용 된 경우 양식 제출을 사용 중지하는 코드를 어디서 추가 할 수 있습니까?

답변

2

사용하여 도와주세요. jQuery Validate는 원격 유효성 검사를 지원하며 사용자는이를 사용하지 않습니다.

remote 규칙을 살펴보십시오.

0

시도 내가 뭔가를 누락 될 수 있습니다하지만 난 당신이 잘못된 접근 방식을 취하고 생각 $('#createapp').validate(...code...).cancelSubmit = true;

0

나는 #createapp이 (가) 귀하의 양식이라고 생각합니까? 그렇다면 이름이 이미 사용 된 경우 제출 속성을 변경합니다.

$('#appname').focusout(function(){ 
    $.ajax({ 
     type: "POST", 
     url: "<?php echo base_url();?>index.php/app/application/check_app", 
     data: "appname="+$("#appname").val(), 
     success: function(msg){ 

      if(msg == "false") 
      { 
       var controlDiv = $('#appname').closest('.control-group'); 
        controlDiv.addClass('error'); 
        controlDiv.removeClass('success'); 
       $('#createapp').attr('submit', 'return false;'); 
      } 
      else 
      { 
       var controlDiv = $('#appname').closest('.control-group'); 
        controlDiv.addClass('success'); 
        controlDiv.removeClass('error'); 
      } 
     } 
    }); 
}); 
관련 문제