2017-06-22 46 views
1

我想在不提交表單的情況下驗證某些表單域。帶錨標記的codeigniter表單驗證點擊

這是我的代碼,如果有人可以幫忙。

查看:

<form> 
<input type="text" name="first_name" placeholder="First Name..." class="textfield"> 
<a href="javascript:void();" onClick="validateName();"> 
</form> 

腳本:

function validateName(){ 

var first_name = $('.textfield').val(); 

$.ajax({ 
url: "Eligibility/contAjax", 
type: "POST", 
data: first_name, 
dataType:"json", 
success: function(response){ 
var obj = eval(response); 
if(obj.error==0){ 
console.log('Success'); 
} 
else{ 
console.log('Failed'); 
} 
} 
}); 
} 

控制器:

public function contAjax(){ 

// loading form validation library // 
$this->load->library('form_validation'); 

$this->form_validation->set_rules('first_name', 'First name', 'required'); 


if($this->form_validation->run()== TRUE){ 
echo json_encode(array('error' => 0)); 
} 
else{ 
echo json_encode(array('error' => 1)); 
} 

} 

它總是返回錯誤= 1個,表單驗證是不工作...

+1

'countryOfBirth'輸入字段在哪裏? – Shihas

+0

這是更新... –

+0

我改變了規則,但它不工作:(, –

回答

0

這是未經測試的代碼...但應該工作

function validateName() { 
    var first_name = $('.textfield').val(); 

    console.log('first_name is ' + first_name); // Check it's getting this far 
    $.ajax({ 
     url: "Eligibility/contAjax", 
     type: "POST", 
     data: {first_name: first_name}, 
     dataType: "json", 
     success: function (response) { 
      if (response.error == 0) { 
       console.log('Success'); 
      } 
      else { 
       console.log('Failed'); 
      } 
     } 
    }); 
} 
與另外的console.log的,你可以很容易地檢查你的價值

所以(他笑着說)......

我不是在網址中使用大寫的忠實粉絲(只適用於Windows,並可能導致在linux/apache服務器上流淚),所以最好使用小寫。

只是一些更多的調試添加到這一點,你可以檢查服務器端看到你發佈的simplish方式...

這僅僅是一個檢查你的貼值(使用類似螢火蟲或類似的方式好得多......)

function contAjax() { 
// loading form validation library // 
    $this->load->library('form_validation'); 
    $this->form_validation->set_rules('first_name', 'First name', 'required'); 
    $first_name = $this->input->post('first_name'); 

    if ($this->form_validation->run() == TRUE) { 
     echo json_encode(array('error' => 0, 'first_name' => $first_name)); 
    } else { 
     echo json_encode(array('error' => 1, 'first_name' => $first_name)); 
    } 
} 

而且你的JS會成爲......

function validateName() { 
    var first_name = $('.textfield').val(); 

    console.log('first_name is ' + first_name); // Check it's getting this far 
    $.ajax({ 
     url: "Eligibility/contAjax", 
     type: "POST", 
     data: {first_name: first_name}, 
     dataType: "json", 
     success: function (response) { 
      if (response.error == 0) { 
       console.log('Success - First Name = ' + response.first_name); 
      } 
      else { 
       console.log('Failed - First Name = ' + response.first_name); 
      } 
     } 
    }); 
} 

關鍵是要知道如何「看」發生了什麼事,這使得調試這k inds的事情更容易...

希望有所幫助。此代碼再次未經測試,但顯示委託人...

+0

謝謝TimBrownlaw ...你讓我的一天...現在的工作... –

+0

這是盛大的聽到:)歡迎您:) – TimBrownlaw