我使用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.
请你帮助我塑造我的观点。
答案 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,
所以你怎么能用标签来设计风格?!!!