#jquery #select #required
#jquery #выберите #требуется
Вопрос:
У меня есть форма, и при изменении списка выбора статуса обязательным полем должна быть дата вступления статуса в силу.
function checkStatuses(){
$('.status').each(function (){
thisStatus = $(this).val().toLowerCase();
thisOrig_status = $(this).next('.orig_status').val().toLowerCase();
target = $(this).parents('td').nextAll('td:first').find('.datepicker');
if ( thisStatus == thisOrig_status )
{
target.val('');
}
else if( thisStatus == 'production' || thisStatus == 'production w/o appl')
{
target.val('<cfoutput>#dateformat(now(), "mm/dd/yyyy")#</cfoutput>').focus();
alert('The Status Effective Date is required.');
return false;
}
else
{
target.val('<cfoutput>#dateformat(now(), "mm/dd/yyyy")#</cfoutput>');
return false;
}
});
}
Возвращаемое значение false в любом случае не препятствует отправке моей формы. Приведенная выше форма вызывается другой функцией, подобной такой:
return checkStatuses();
Ответ №1:
Ваша функция прямо сейчас ничего не возвращает. Единственные инструкции return, которые у вас есть, находятся в цикле jQuery. return false
По сути, это разрыв $.each()
цикла. Которое затем возвращается к вашей основной функции ( checkStatuses()
), которая достигает конца кодового блока без какого-либо оператора return. Наличие возвращаемой переменной может помочь:
function checkStatuses(){
var result = true; //assume correct unless we find faults
$('.status').each(function (){
thisStatus = $(this).val().toLowerCase();
thisOrig_status = $(this).next('.orig_status').val().toLowerCase();
target = $(this).parents('td').nextAll('td:first').find('.datepicker');
if ( thisStatus == thisOrig_status )
{
target.val('');
}
else if( thisStatus == 'production' || thisStatus == 'production w/o appl')
{
target.val('<cfoutput>#dateformat(now(), "mm/dd/yyyy")#</cfoutput>').focus();
alert('The Status Effective Date is required.');
result = false; //set to false meaning do not submit form
return false;
}
else
{
target.val('<cfoutput>#dateformat(now(), "mm/dd/yyyy")#</cfoutput>');
result = false; //set to false meaning do not submit form
return false;
}
});
return resu< //return the result of the checks
}
Комментарии:
1. @ dlackey Хаха, это происходит! Удачи