因此,我试图在jquery ajax调用后显示验证错误,但是由于某种原因,不是打印实际的消息,而是获取+ value +或+ data.success +,而是将值附加错误了吗?
这是我的代码:
$.ajax({
url: '/contactar',/*{{ action('ContactController@contactar') }}*/
type: 'POST',
data:
{
'message_body': $("textarea[name='message']").val()
},
dataType: 'JSON',
success: function (data) {
$('.form_valid_container').append('<span class="form_valid_text">data.success</span>');
form.trigger("reset");
console.log(data.success, data.errors);
},
error: function (data){
var errors = data.responseJSON;
console.log(errors);
$.each(errors , function(key , value){
console.log('error pin');
$('.form_error_container').append('<span class="form_error_text">+ value +</span>')
});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 0 :(得分:0)
是的,如语法颜色所示,您错误地附加了值:整个文本为深红色。
您的字符串以单引号'
开头,因此您还需要在'
之前以+ value +
结束字符串:
$('.form_error_container').append('<span class="form_error_text">' + value + '</span>')
答案 1 :(得分:0)
@pyb和原始代码给出的答案几乎总是有效。但是,我看到即使表单已被重置或多次触发,DIV仍会继续附加错误。
下面是我喜欢的代码:
注意:我在成功阻止容器中使用了html
函数,该函数不会总是附加成功消息。
注意:在打印错误消息之前,我已经使用form_error_container
功能清除了html
,因此即使重置了表单,它也不会继续添加错误消息。或多次触发。
$.ajax({
url: '/contactar',/*{{ action('ContactController@contactar') }}*/
type: 'POST',
data:
{
'message_body': $("textarea[name='message']").val()
},
dataType: 'JSON',
success: function (data) {
$('.form_valid_container').html('<span class="form_valid_text">data.success</span>');
form.trigger("reset");
console.log(data.success, data.errors);
},
error: function (data){
var errors = data.responseJSON;
console.log(errors);
$('.form_error_container').html("");
$.each(errors , function(key, value) {
console.log('error pin');
$('.form_error_container').append('<span class="form_error_text">' + value + '</span>')
});
}
});
谢谢。