ajaxForm不会创建html元素

时间:2012-03-20 12:02:24

标签: jquery ajax json

我的剧本出了什么问题。 它不会在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>"}

Here's the image for reference

1 个答案:

答案 0 :(得分:2)

如果以下行是您要创建html元素的行:

$(".dialog p").html(data.msg);

然后您需要data.msg来包含该元素,包括html标记。因此,您需要将服务器端代码更改为输出<>,而不是&lt;&gt;。也就是说,您的JSON输出应为:

{"msg":"<ul><li>Repeat Password!</li><li>Employee not found!</li></ul>"}

如果由于某种原因无法在服务器端进行更改,可以在使用之前将其替换为JS:

$(".dialog p").html( data.msg.replace(/&gt;/g,">").replace(/&lt;/g,"<") );