我实现了ajax表单验证。但即使所有输入类型都包含值。它会显示$this->form_validation->run()
false
。我没有得到如何解决这个问题。
控制器代码
$this->form_validation->set_rules('first_name', 'First Name', 'trim|required');
$this->form_validation->set_rules('last_name', 'Last Name', 'trim|required');
$this->form_validation->set_rules('balance', 'Balance', 'trim|required|numeric');
if ($this->form_validation->run() == FALSE) {
echo validation_errors();
}else{
}
AJAX致电
$('#updateUsersInfo').on('click',function(){
$.ajax({
url:"<?php echo base_url();?>admin/updateUserData",
type: "POST",
dataType: 'json',
data: {'submit_token': $('#token_id').val()},
success:function(data){
$('#bindErrors').text(data);
}
}) ;
});
查看代码
<form class="popupform" method="post">
<div class="error" id="bindErrors"></div>
<div id="bindSuccessMsg"></div>
<div class="row">
<div class = "col-md-8 col-md-offset-2">
<div class="col-md-8">
<div class="form-group">
First name <input type="text" class="form-control" placeholder="First Name" id="first_name" name="first_name" value="">
</div>
<div class="form-group">
Last name <input type="text" class="form-control" placeholder="Last Name" name="last_name" id="last_name" value="">
</div>
<div class="form-group">
Email <input type="email" id="email" class="form-control" readonly placeholder="Email address" name="email_address" value="">
</div>
<div class="form-group">
Balance <input type="number" id="balance" class="form-control" placeholder="Balance" name="balance" value="">
</div>
<div class="form-group">
<div class="radio" >
<label style="margin-right: 10px;">
<input type="radio" name="account_type" value="1" >Personal</label>
</div>
<div class="radio">
<label><input type="radio" name="account_type" value="3">Business</label>
</div>
</div>
<div class="form-group" style="clear:left; padding-top: 10px;">
<input type="hidden" name="user_id" id="user_id" value=""/>
<input type="submit" id="updateUsersInfo" class="btn tf-btn btn-default" value="Submit"/>
</div>
</div>
</div>
</div>
</form>
我使用过CSRF令牌,但现在代码中没有考虑到这一点。除此之外,有人可以让我知道为什么错误会出现,即使字段包含有效数据。
我正在使用codeigniter 3.0.3
答案 0 :(得分:0)
在此行echo validation_errors();你要做的是 echo json_encode(validation_errors())因为在ajax调用中你使用的是dataType:&#39; json&#39;和success:function(data){console.log(data);试试这些东西它会起作用