2015-02-06 5 views
0

Моя проблема в том, что если validation_form функция возвращает false, то останавливает выполнение и не обрабатывает другую инструкцию. Мне нужно выполнить все инструкции сразу. Мой код для проверки формы приведен ниже.javascript внутренняя/вспомогательная функция возвращает проблему

jQuery("#submitsuggestevent").click(function (e) { 
    e.preventDefault(); 
    var flag = true; 

    var event_title = $('#title'); 
    var country = $('select[name="country"]'); 
    var state = $('select[name="state"]'); 
    var venue = $('select[name="venue"]'); 
    var category = $('select[name="category"]'); 

    flag = flag && validation_form(event_title); 
    flag = flag && validation_form(country); 
    flag = flag && validation_form(state); 
    flag = flag && validation_form(venue); 
    flag = flag && validation_form(category); 

    if(flag){ 
     $('#frmevents').submit(); 
    } 
}); 

function validation_form(ele) { 
    if ($.trim(ele.val()) == '' || typeof(ele.val()) === 'undefined') { 
     return false; 
    } 
    else { 
     return true; 
    } 
} 
+0

Как о 'флаг = validation_form (EVENT_TITLE)' вместо этого. Вам не нужно проверять, верно ли флаг 'true'/false. – Andy

+0

Используйте 'typeof (ele.val()) === 'undefined'' вместо этого. – techfoobar

ответ

1

Это может быть проблема

flag = flag && validation_form(event_title); 
flag = flag && validation_form(country); 
flag = flag && validation_form(state); 
flag = flag && validation_form(venue); 
flag = flag && validation_form(category); 

Javascript среда выполнения может быть умнее и конвертировать выше блок кода

flag=validation_form(event_title)&&validation_form(country)&&validation_form(state)&&validation_form(venue)&&validation_form(category);

Как вы знаете, в & & операций, если левая сторона оценена к ложной правой стороне игнорируется (поскольку false&&whatever - это все равно).

Решение должно иметь что-то вроде

var val_title = validation_form(event_title); 
var val_country = validation_form(country); 

и т.д., и, наконец,

flag = val_title&& val_country&&....

Смежные вопросы