2016-04-28 59 views
0

我有一個需要驗證的表單,但我很難弄清楚如何使用JQuery進行驗證,尤其是當JQuery將space更改爲%20並且不接受任何符號爲@,$,!,看看下面的截圖Codeigniter:使用JQuery驗證空間和符號進行驗證

錯誤的符號 enter image description here

這是說,你的URI輸入已禁止ç haracters

SPACE

然後爲space輸入它的變化值,並增加當然Firhal%20Faisal%20enter image description here 是不是在數據庫中有隻Firhan Faisal

我怎麼能設法解決這2個問題,我有?下面是我的JavaScript驗證表格name,似乎改變space投入%20,以及電子郵件它基本上是相同的

JAVASCRIPT

$("#nama").bind("keyup change", function(){ 
    var nama = $(this).val(); 
    $.ajax({ 
     url:'cekData/mahasiswa/nama_mahasiswa/'+nama, 
     data:{send:true}, 
     success:function(data){ 
      if(data==1){ 
       $("#reportNama").text(""); 
       $('button[type="submit"]').prop('disabled',''); 
       $("#username").prop("disabled", ''); 
       $("#password").prop("disabled", ''); 
       $("#nim").prop("disabled", ''); 
       $("#email").prop("disabled", ''); 
       $("#telepon").prop("disabled", ''); 
      }else{ 
       $("#reportNama").text("*nama sudah ada"); 
       $('button[type="submit"]').prop('disabled',true); 
       $("#username").prop("disabled", true); 
       $("#password").prop("disabled", true); 
       $("#nim").prop("disabled", true); 
       $("#email").prop("disabled", true); 
       $("#telepon").prop("disabled", true); 
       } 
      } 
     }); 
    }); 

控制器

public function cekData($table,$field, $data){ 
    $match = $this->MDosen->read($table,array($field=>$data), null, null); 
    if($match->num_rows() > 0){ 
     $report = 2; 
    }else{ 
     $report = 1; 
    } 
    echo $report; 
} 

回答

1

ÿ OU應使用GET或POST參數傳遞值:

的JavaScript

$.ajax({ 
    url:'cekData/mahasiswa/nama_mahasiswa/', 
    data:{send:true, value: nama}, 
    success:function(data){ 
     ... 
    } 
}); 

控制器

public function cekData($table,$field){ 
    $data = $this->input->get('value'); 
    $match = $this->MDosen->read($table,array($field=>$data), null, null); 
    if($match->num_rows() > 0){ 
     $report = 2; 
    }else{ 
     $report = 1; 
    } 
    echo $report; 
} 
+0

以及它的空間很好地工作,但當使用symb時ol它沒有工作,就像驗證電子郵件'tes @ gmail.com'時,url發送像這樣的'tes%40gmail.com'數據和錯誤,說'dissalowed字符,任何想法? –

+0

@MirzaChilman當符號在URL中傳遞或作爲GET/POST參數的鍵時出現錯誤,因此您可能需要仔細檢查您不這樣做。在URL中傳遞符號時出現 –

+0

錯誤 –