繁体   English   中英

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

[英]jQuery AJAX error handling How to separate returned error messages into individual li's

使用从数据库返回的一些数据。 所有数据都以表格形式返回,具体为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。

我知道这个解决方案不是使用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集合而不是表格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM