我的剧本出了什么问题。 它不会在ajax上成功创建一个html元素吗?
以下是脚本:
$('.ajaxForm').ajaxForm({
dataType : "json",
success : function(data){
if(data.msg=='ok'){
setTimeout("fnChangePage('/login')",5000);
}else{
$(".dialog p").html(data.msg);
$(".dialog").dialog({
title : "Error!"
});
}
}
});
我的json输出是这样的:
{"msg":"<ul><li>Repeat Password!<\/li><li>Employee not found!<\/li><\/ul>"}
答案 0 :(得分:2)
如果以下行是您要创建html元素的行:
$(".dialog p").html(data.msg);
然后您需要data.msg
来包含该元素,包括html标记。因此,您需要将服务器端代码更改为输出<
和>
,而不是<
和>
。也就是说,您的JSON输出应为:
{"msg":"<ul><li>Repeat Password!</li><li>Employee not found!</li></ul>"}
如果由于某种原因无法在服务器端进行更改,可以在使用之前将其替换为JS:
$(".dialog p").html( data.msg.replace(/>/g,">").replace(/</g,"<") );