逐行显示验证错误

时间:2014-12-23 17:16:04

标签: jquery html css codeigniter

我使用ajax调用来显示Codeigniter在视图上生成的验证错误。

控制器:

$error = strip_tags(validation_errors());         
$data = array('message' => $error);
echo json_encode($data);

我从控制台网络获取以下内容:

{"message":"The First Name field is required.\nThe Last Name field is required.\n"}

JS档案:

 $( "#error").text(data.message);

我的观点是:

The First Name field is required. The Last Name field is required.

但我希望它以下列方式显示:

The First Name field is required. 

The Last Name field is required.

请你帮助我塑造我的观点​​。

3 个答案:

答案 0 :(得分:1)

使用.html()代替.text(),试试这个:

 $( "#error").html(data.message.replace(/\n/, '<br>'));

您可以拆分消息并获取数组:

 var messages = data.message.split("\n"));
 for(var i=0; i<messages.length;i++)
     $( "#error").append(messages[i] + '<br/><br/>');

答案 1 :(得分:0)

在js文件中:

var data_message = data.message.split('\n');

$( "#error").html(data_message[0] +"<br />"+ data_message[1]);

答案 2 :(得分:0)

更改错误分隔符

默认情况下,Form Validation类会在显示的每条错误消息周围添加一个段落标记(

)。您可以全局或单独更改这些分隔符。

全局更改分隔符

要在控制器函数中全局更改错误分隔符,只需在加载表单验证类之后添加:

 $this->form_validation->set_error_delimiters('<div class="error">', '</div>');

单独更改分隔符

<?php echo form_error('field name', '<div class="error">', '</div>'); ?>

<?php echo validation_errors('<div class="error">', '</div>'); ?>

在这种情况下我不知道为什么你 strip_tags ,它将从返回字符串中删除所有html,php,

所以你怎么能用标签来设计风格?!!!

CodeIgniter User Guide