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;
    }
});
});

1回だけ追加できるようにする方法、またはdivを非表示にして、2回クリックした場合に再度入力する方法を理解する必要があります。私が望まないのは、ユーザーがボタンを複数回クリックできるようにして、同じレコードを追加し続けることです。長さがあるかどうかを確認し、if / elseステートメントで実行するか、場合によっては.one関数を使用してフックしようとしていますが、役に立ちません。if / else内で正しい部分をラップする方法、または.one関数で「find」プロパティと「each」プロパティの両方を取得する方法を理解できません。

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

.remove()成功ハンドラーの開始時に同じデータを (適切なセレクターを使用して) 2 回表示されないようにする必要があります。

于 2012-12-07T20:11:05.303 に答える
1

html代わりに使用してください。

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