2015-05-13 4 views
1

Я использую скрипт jquery smart wizard, чтобы сделать мои формы в волшебники.Оптимизация кода JQuery

Это работает очень хорошо, но код проверки выглядит так, что его можно упростить.

Это пример, который они предоставляют. Может ли это быть сделано в цикле, поэтому мне не нужно писать его для каждого из моих 5 шагов?

function validateSteps(step){ 
    var isStepValid = true; 
    if(step == 1){ 
    if(validateStep1() == false){ 
     isStepValid = false; 
     $('#wizard').smartWizard('showMessage','Please correct the errors in step '+step+ ' and click next.'); 
     $('#wizard').smartWizard('setError',{stepnum:step,iserror:true});   
    }else{ 
     $('#wizard').smartWizard('hideMessage'); 
     $('#wizard').smartWizard('setError',{stepnum:step,iserror:false}); 
    } 
} 

    if(step == 3){ 
    if(validateStep3() == false){ 
     isStepValid = false; 
     $('#wizard').smartWizard('showMessage','Please correct the errors in step '+step+ ' and click next.'); 
     $('#wizard').smartWizard('setError',{stepnum:step,iserror:true});   
    }else{ 
     $('#wizard').smartWizard('hideMessage'); 
     $('#wizard').smartWizard('setError',{stepnum:step,iserror:false}); 
    } 
    } 

    return isStepValid; 
} 

Благодаря

+1

Ну вы должны опубликовать эти вопросы любопытного ** [здесь ] (http://codereview.stackexchange.com/) ** –

+0

Для оптимизации вам нужно показать, как 'validateStep1()' и 'validateStep2()', ..... так далее, похоже! так может обобщить его. –

+3

@GuruprasadRao Грустно сказать это, но, * «Это пример, который они предоставляют». * Указывает, что OP не писал этот код сам, что делает его вне темы для обзора кода. –

ответ

1

Вы можете сделать это,

function validateSteps(){ 
     var isStepValid = true, step =1; 
     for(step ;step <=5;step ++){ 
      if(window["validateStep"+step ]() == false){ 
       isStepValid = false; 
       $('#wizard').smartWizard('showMessage','Please correct the errors in step '+step + ' and click next.'); 
       $('#wizard').smartWizard('setError',{stepnum:step ,iserror:true});   
      }else{ 
       $('#wizard').smartWizard('hideMessage'); 
       $('#wizard').smartWizard('setError',{stepnum:step ,iserror:false}); 
      } 

     } 
     return isStepValid; 

    } 

Вы просто должны беспокоиться о том, функции с именем validateStepX

+0

Спасибо, что помогает – Tom

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