2015-02-06 1 views
0

내 문제는 validation_form 함수가 false를 반환하면 실행이 중지되고 다른 명령문을 처리하지 않습니다. 모든 문장을 한 번에 실행해야합니다. 양식의 유효성을 검사하는 코드는 다음과 같습니다.자바 스크립트 내부/하위 함수가 문제를 반환합니다.

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

같은 것을하는 것입니다. 'flag'가 true/false인지 먼저 테스트 할 필요가 없습니다. – Andy

+0

'typeof (ele.val()) === 'undefined ''를 대신 사용하십시오. – techfoobar

답변

1

이 런타임이 똑똑하고 왼쪽을 평가하는 경우 & & 작업에 아시다시피

flag=validation_form(event_title)&&validation_form(country)&&validation_form(state)&&validation_form(venue)&&validation_form(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); 

수 false 오른쪽으로 무시됩니다 (false&&whatever은 어쨌든 false 임). 대신`;

솔루션

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

등 및 방법 '플래그 = validation_form (EVENT_TITLE)에 대한 마지막

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

관련 문제