如果用户填写了一些无效数据,则会触发ajax请求并显示错误消息。现在,当用户再次更正数据/或再次输入无效数据时,将触发2个请求,下一次3,并且它会继续相加。
这可能是因为欧芹js库。如果我删除欧芹代码它可以正常工作。任何想法?
这是ajax代码
function removeAndget(p){
var p2;
for(var i =0;i<waiting_list.length;i++){
if(waiting_list[i].le === p.le){
p2 =waiting_list[i];
console.log(waiting_list);
waiting_list.slice(i,1);
console.log(waiting_list);
break;
}
}
return p2;
}
以下是HTML代码段
$('#upload-profile-button').on('click', function(e) {
$("#upload-profile-form").parsley().validate();
$("#upload-profile-form").parsley().on('form:validate', function (formInstance) {
var isFormValid = formInstance.isValid();
if(isFormValid){
e.preventDefault();
$('#upload-profile-button').html('Uploading...');
var fd = new FormData($("#upload-profile-form")[0]);
$.ajax({
type : 'POST',
url : '/mbatch/batch/uploadBatch',
data : fd,
processData : false,
contentType : false,
beforeSend : function() {
},
success : function(response) {
if (response.data.fetchTpodSuccess == true) {
window.location.href= "/mbatch/batch/listBatch";
} else {
new PNotify({
title: 'Notice',
text: response.message,
type: 'error',
styling: 'bootstrap3'
});
$('#upload-profile-button').html('Submit');
}
},
error : function(data) {
new PNotify({
title: 'Notice',
text: JSON.parse(data.responseText).message,
type: 'error',
styling: 'bootstrap3'
});
$('#upload-profile-button').html('Submit');
}
});
}
});
});
任何线索都会受到高度赞赏。
答案 0 :(得分:1)
我刚刚找到了解决方案。 这是因为我在表单标签中也使用了data-parsley-validate 并且在js中也是如此
{{1}}
Parsley在文档加载时查看DOM中的所有数据 - parsley-validate事件,并在有效时自动绑定它们。 一旦表单或字段实例被Parsley绑定,就执行$('#form')。parsley(options);将更新现有选项,但不会替换它们。
来源 - missing-perform
rule
答案 1 :(得分:0)
也许你在每次调用后渲染你的脚本,因此它可以多次将你的点击功能附加到点击事件。 如果是这种情况,请首先尝试取消绑定您的点击事件,然后再添加以下内容:
$('#upload-profile-button').unbind('click').on('click',...