2012-11-14 3 views
0

JS :JQuery와 유효성 검사 양식 (CodeIgniter를)

  $(document).ready(function(){ 
      $('#username').change(function(){ 
       var username = $('#username').val(); 
       $('#usernamemsg').html('<img src="<?php echo base_url()?>images/ajax_loader.gif"/> Checking'); 
       $.ajax({ 
        type: "POST", 
        url: "<?php echo base_url()?>user/username_validation", 
        dataType: "json", 
        data: "username="+username,      
        success: function(data){ 
         if(data.valid){ 
          $('#usernamemsg').html(data.msg); 
         }else{ 
          $('#usernamemsg').html(data.msg); 
         } 
        } 
       }); 
      }); 
     }); 

조회수 :

<form id="add" method="post" action=""> 
     <table> 
      <tr> 
       <td>Username</td> 
       <td><input type="text" id="username" name="username" /> 
       <div id="usernamemsg"></div></td></tr>  
      <tr> 
       <td>Password</td> 
       <td><input type="password" id="password" name="password" /></td></tr> 
      <tr> 
       <td><input type="submit" name="add" value="OK" id="submit" /></td></tr> 
      </table></form> 

컨트롤러 :

 public function index(){ 
      $data['title']   = 'Register'; 
      $data['template']  = 'outside/validation/validation'; 
      $this->load->view('templates/home_template',$data); 

     $add = $this->input->post('add'); 
     if($add){ 
      $data    = array(
      'username'   => trim($this->input->post('username')), 
      'password'   => trim($this->input->post('password'))); 
      $this->data_mod->insert('user',$data); 
      redirect('registration/welcome'); 
     } 
    } 
public function username_validation(){ 
     $user = $this->data_mod->validation('user',array('username' => $this->input->post('username')));       
     if($user >= 1){ 
      $msg = array(
      'valid' => false, 
      'msg' => 'Username is already taken'); 
     }else{ 
      $msg = array(
      'valid' => true, 
      'msg' => 'Username is available'); 
     } 
     echo json_encode($msg); 
    } 

* 내가 영어를 배우려고 해요, 그래서 내가 말 좋지 않아.

제출을 누르면 사용자 이름을 입력 할 때 양식이 js 코드가 올바르게 작동하지만 양식이 사용자 이름 필드에 알리지 않고 서버에 제출됩니다.

누군가 나를 도울 수 있습니까?

+0

사용자 이름이 유효하지 않더라도 양식은 계속 사용자 이름을 수집하여 db에 삽입합니까? – bondythegreat

+0

입력 내용이 비어 있고 알림을 받고 싶습니까? –

+0

@bondythegreat yes! 그게 내 문제 야. Sheikh Heera 제출할 때 js에 해당 조건을 추가하면 필드의 유효성을 검사하지 않고 데이터베이스에 삽입하지 않습니다. –

답변

1

그리고 또한 success 콜백 대신 그냥 라인을

$('#usernamemsg').html('<img src="<?php echo base_url()?>images/ajax_loader.gif"/> Checking'); 

등을 수행하기 전에 js

var username = $('#username').val(); 
if($.trim(username).length==0) 
{ 
    alert('Please enter user name !'); 
    return false; 
} 

내에서 이것을 시도

if(data.valid){ 
    $('#usernamemsg').html(data.msg); 
}else{ 
    $('#usernamemsg').html(data.msg); 
} 

$('#usernamemsg').html(data.msg); 
+0

나는 코드를 작성하는 데 시간을내어 주셔서 감사합니다. –

+0

@Boulevard, 알고 기뻐요 :-) –