2017-06-22 118 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