jQuery AJAX错误处理如何将返回的错误消息分成单独的li

时间:2012-12-06 03:30:02

标签: jquery

使用从数据库返回的一些数据。所有数据都以表格形式返回,具体为td。返回数据的标记就是这样

<table border=1>
    <tr>
        <td>Field Name</td>
        <td>Field Value</td>
    </tr>
    <tr>
        <td>SuccessFlag</td>
        <td>False</td>
    </tr>
    <tr>
        <td>ResponseMessage</td>
        <td>Invalid email address, Invalid User Name, etc., etc</td>
    </tr>
</table>

在我的错误处理中,我能够到达第6个td并显示错误没问题。

success: function(data) {
    var answer = $(data).find("td:eq(3)").text();
    var message = $(data).find("td:eq(5)").text();
    if (answer==="True") {
        $("#bottomContent").load("page.php #div");
        } else {
        $('#processing').hide();
        $('input[type="text"], input[type="password"]').val("");
        $('#messageBox').show().html('<ul><li>' + message + '</li></ul>');
        }
    }

不幸的是,它会输出一个li中的所有内容。我想弄清楚如何在','处拆分它们,并在拆分后为每个项目创建一个单独的li。

1 个答案:

答案 0 :(得分:2)

我知道这个解决方案不使用jQuery,但你考虑过使用knockoutjs。它显着简化了客户端数据绑定。

<ul data-bind="foreach: errorMessages ">
    <li>
        <label data-bind="text: title"></label>
    </li>
</ul>

<script>
// Use knockout observable array
var errorMessages = ko.observableArray();

success: function(data) {
var answer = $(data).find("td:eq(3)").text();
var message = $(data).find("td:eq(5)").text();
if (answer==="True") {
    $("#bottomContent").load("page.php #div");
    } else {
    $('#processing').hide();
    $('input[type="text"], input[type="password"]').val("");

    // Knockout array will automatically bind to your DOM
    this.errorMessages(message);
    }
}
</script>

您可能需要将“message”变量人工处理为JSON集合而不是表格。