好的,所以我一直在寻找 JQuery 中的条件语句,但我找不到有关如何检查以确保两个输入框中的至少一个具有内容的解决方案。
这是我到目前为止所拥有的
$('#send').click(function(){ // when the button is clicked the code executes
$('.error').fadeOut('fast'); // reset the error messages (hides them)
var error = false; // we will set this true if the form isn't valid
var name = $('input#namn').val(); // get the value of the input field
var message = $('textarea#meddelande').val(); // get the value of the textarea
var phone = $('input#telefon').val(); // get the value of the input field
var email_compare = /^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$/; // Syntax to compare against input
var email = $('input#epost').val(); // get the value of the input field
if(name == "" || name == " " || name == "namn" || name.length < 2) {
$('input#namn').val("namn").css({ 'color': 'red' });
error = true; // change the error state to true
}
if(phone == "" || phone == " " || phone == "telefon" || phone.length < 5) {
$('input#telefon').val("telefon").css({ 'color': 'red' });
error = true; // change the error state to true
}
if (email == "" || email == " " || email == "epost") { // check if the field is empty
$('input#epost').val("epost").css({ 'color': 'red' });
error = true;
}else if (!email_compare.test(email)) { // if it's not empty check the format against our email_compare variable
$('input#epost').val("kontrollera epost").css({ 'color': 'red' });
error = true;
}
if(message == "" || message == " " || message == "meddelande" || message.length < 10) {
$('textarea#meddelande').val("meddelande").css({ 'color': 'red' });
error = true; // change the error state to true
}
if(error == true) {
$('#err-form').fadeIn('fast');
return false;
}
var data_string = $('#ajax-contactform').serialize(); // Collect data from form
$.ajax({
type: "POST",
url: $('#ajax-contactform').attr('action'),
data: data_string,
timeout: 6000,
error: function(request,error) {
if (error == "timeout") {
$('#err-timedout').fadeIn('fast');
}
else {
$('#err-state').fadeIn('fast');
$("#err-state").html('Ett fel uppstod: ' + error + '');
}
},
success: function() {
$('#ajax-contactform').fadeOut('fast');
$('#success-msg').fadeIn('slow');
}
});
return false; // stops user browser being directed to the php file
}); // 结束点击函数
它工作正常。但是,我想做一个有条件的陈述来检查并确保电子邮件或电话有内容。我不想强迫人们必须离开两者,但至少要离开一个。
因此,如果电话有内容(只有数字,而不是“电话”这个词),那么电子邮件不再是强制性的,反之亦然。如果电子邮件有内容,它仍然需要检查以确保它是有效的电子邮件。
我该怎么做呢?我在这里有点迷路:(