我有一个表单验证类,它返回一个错误数组。
$.ajax({
type: "POST",
url: "/oop/register.php",
data: data,
success: function(response){
alert(response);
var emptyDiv= $('<div></div>');
jQuery.each(response, function(i, val){
emptyDiv.clone().insertAfter('ul#state-list li:nth-child(' + val + ')');
});
$('#signupalert').append(emptyDiv);
$('#signupalert').fadeIn('slow');
}});
警报显示响应是一个错误数组,但在控制台中我收到以下错误:
Uncaught TypeError: Cannot use 'in' operator to search for '209' in Array
(
[0] => username is required
[1] => first_name is required
[2] => last_name is required
[3] => password is required
[4] => confirm_password is required
...<omitted>...)
答案 0 :(得分:1)
我建议使用普通for
而不是jQuery.each
可能返回的响应不是javascript数组对象
$.ajax({
type: "POST",
url: "/oop/register.php",
data: data,
success: function(response){
response = jQuery.parseJSON(response);
alert(response);
var emptyDiv= $('<div></div>');
for(var x = 0; x < response.length; x++) {
emptyDiv.clone().insertAfter('ul#state-list li:nth-child(' + response[x] + ')')
}
$('#signupalert').append(emptyDiv);
$('#signupalert').fadeIn('slow');
}});
另外要确保response[x]
是您要查找的字符串值,请尝试提醒它;或者您也可以在浏览器的开发模式下检查响应的实际值,或者如果您有一些像Fiddler这样的工具使用那个,只是为了确保响应值是普通数组或数组对象