0

我有一些返回的 xml 正在被解析并在提交表单时显示:

$("#Button").live('click',function(){
$("#Form").validate({
    submitHandler: function(form) {
        $('#prcs3').show();
        var dataString = $(form).serialize();
        $.ajax({
            type: $(form).attr('method'),
            url: form.action,
            data: dataString,
            clearForm: true,
            success: function(data) {
                var answer = $(data).find("td:eq(3)").text();
                var message = $(data).find("td:eq(5)").html();
                var $xml = $( message );
                if (answer==="True") {
                    $('#prcs3').hide();
                    $xml.find('license').each(function(){
                        var XXXCustomerID = $(this).find('FXCMCustomerID').text();
                        var XXLicense  = $(this).find('NTLicense').text();
                        var Log  = $(this).find('Log').text();
                        var ExpirationDate  = $(this).find('ExpirationDate').text();
                        $("#resultGenerate").show().append($('<li><span class="ID">' + XXXCustomerID + '</span><span class="XXL">' + XXLicense + '</span><span class="Log">' + Log + '</span><span class="Exp">' + ExpirationDate + '</span></li>'));

                    });
                } else {
                    $('#prcs3').hide();
                    $('input[type="text"], input[type="password"]').val("");
                }
            }
        });
        return false;
    }
});
});

我需要想办法让它只追加一次,或者如果单击两次,则隐藏 div 并再次填充它。我不希望用户能够多次单击按钮并不断添加相同的记录。我试图通过检查它是否有长度来连接它,并在 if/else 语句中执行或可能使用 .one 函数,但无济于事。我无法弄清楚如何将正确的部分包装在 if/else 中,或者如何让 .one 函数同时获取“查找”和“每个”属性。

4

3 回答 3

2

里卡多斯的替代答案:

$("#Button").live('click',function(){
$("#Form").validate({
submitHandler: function(form) {
    $('#prcs3').show();
    var dataString = $(form).serialize();
    $.ajax({
        type: $(form).attr('method'),
        url: form.action,
        data: dataString,
        clearForm: true,
        success: function(data) {
            var answer = $(data).find("td:eq(3)").text();
            var message = $(data).find("td:eq(5)").html();
            var $xml = $( message );
            if (answer==="True") {
                $('#prcs3').hide();
                $xml.find('license').each(function(){
                    var XXXCustomerID = $(this).find('FXCMCustomerID').text();
                    var XXLicense  = $(this).find('NTLicense').text();
                    var Log  = $(this).find('Log').text();
                    var ExpirationDate  = $(this).find('ExpirationDate').text();
                    $("#resultGenerate").empty();    //Empty the content before placing new stuff in                    
                    $("#resultGenerate").show().append($('<li><span class="ID">' + XXXCustomerID + '</span><span class="XXL">' + XXLicense + '</span><span class="Log">' + Log + '</span><span class="Exp">' + ExpirationDate + '</span></li>'));

                });
            } else {
                $('#prcs3').hide();
                $('input[type="text"], input[type="password"]').val("");
            }
        }
    });
    return false;
}
});
});
于 2012-12-07T19:40:43.170 回答
1

改为使用html

$("#resultGenerate").show().html('...');
于 2012-12-07T19:37:43.527 回答
1

您应该.remove()在成功处理程序的开头使用相同的数据(使用任何合适的选择器),以防止它被显示两次。

于 2012-12-07T20:11:05.303 回答