我通过php和jquery ajax创建了联系表单。下面的代码工作没有任何问题,但我有两个问题。一:当我点击发送按钮显示所有错误。例如,我想当输入名称为空时只显示空错误并且不显示长度错误。二:当我多次点击发送按钮时,每次都重复或显示错误。如果你看到它,请查看我的代码并解决我的问题和其他问题。
var aspectratio=1;
var video = $('<video/>', { autoplay : false, src : url, preload:'metadata' });
video.on('loadedmetadata',function() {
var width = this.videoWidth;
var height = this.videoHeight;
aspectratio=width/height;
console.log(aspectratio);
});
答案 0 :(得分:1)
使用&#34;否则如果&#34;限制自己只有一个错误,如果这是你想要的。要防止多次触发代码,请创建一个全局标志(myFlag)。像这样:
var myObject = {};
myObject.myFlag = false;
jQuery(function() {
jQuery('#contactForm').submit(function(event) {
var bsnConData = {
'name':jQuery('#bsnname').val(),
'subject':jQuery('#bsnsubject').val(),
'email':jQuery('#bsnemail').val(),
'message':jQuery('#bsnmessage').val()
};
jQuery.ajax({
url: 'http://localhost/wp/wp-content/plugins/Yallanpe-BSN/inc/class-contact-inc.php',
type: 'POST',
data: bsnConData,
dataType: 'json',
cache: false
}).done(function(data) {
if(myObject.myFlag != true){
if (data.success == false) {
myObject.myFlag = true;
if (data.errors.nameEmpty) {
jQuery('.form-name').append('<p>'+ data.errors.nameEmpty +'</p>');
}
else if (data.errors.nameLengthErrors) {
jQuery('.form-name').append('<p>'+ data.errors.nameLengthErrors +'</p>');
}
else if (data.errors.messageEmpty) {
jQuery('.form-message').append('<p>'+ data.errors.messageEmpty +'</p>');
}
else if (data.errors.emailEmpty) {
jQuery('.form-email').append('<p>'+ data.errors.emailEmpty +'</p>');
}
} else {
jQuery('#response').html('<p>'+ data.errors.messageSent +'</p>');
}
}
}).fail(function(data) {
console.log('Email Error');
});
event.preventDefault();
});
});
答案 1 :(得分:0)
您可以在发送之前在jquery中验证表单,请记住在服务器中验证此信息。
jQuery(function() {
jQuery('#contactForm').submit(function(event) {
event.preventDefault();
if(jQuery('#bsnname').val() == ''){
alert('bs name is empty');
return;
}
if(jQuery('#bsnsubject').val() == ''){
alert('bsnsubject is empty');
return;
}
if(jQuery('#bsnemail').val() == ''){
alert('bsnemail is empty');
return;
}
if(jQuery('#bsnmessage').val() == ''){
alert('bsnmessage is empty');
return;
}
var bsnConData = {
'name':jQuery('#bsnname').val(),
'subject':jQuery('#bsnsubject').val(),
'email':jQuery('#bsnemail').val(),
'message':jQuery('#bsnmessage').val()
};
jQuery.ajax({
url: 'http://localhost/wp/wp-content/plugins/Yallanpe-BSN/inc/class-contact-inc.php',
type: 'POST',
data: bsnConData,
dataType: 'json',
cache: false
}).done(function(data) {
console.log('done');
}).fail(function(data) {
console.log('Email Error');
});
event.preventDefault();
});
});
在你的php文件上你可以做类似的事情并返回错误