我有一些返回的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函数同时获取“find”和“each”属性。
答案 0 :(得分:2)
Ricardos的替代方案回答:
$("#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;
}
});
});
答案 1 :(得分:1)
请改用html
。
$("#resultGenerate").show().html('...');
答案 2 :(得分:1)
您应该在成功处理程序的开头.remove()
使用相同的数据(使用适当的选择器),以防止它被显示两次。