2016-05-27 1 views
1

В настоящее время я проверяю форму и проверяю, чтобы поля ввода не были пустыми. Для этого я использую метод app.validation.empty(), определенный ниже. В моем заявлении if много повторений. Как я могу поставить следующее вуменьшить многие || операторов к одному из операторов

if(!app.validation.empty(contestName) || !app.validation.empty(date) ||!app.validation.empty(month) ||!app.validation.empty(year) || !app.validation.empty(countryName) || !app.validation.empty(userName) || !app.validation.empty(userLastName)) 

в один метод и, следовательно, свести к одному утверждению?

+0

Эт, это уже * есть * только одно заявление? – Bergi

ответ

2

Вы можете использовать app.validation.empty в качестве обратного вызова с Array#every.

if (![contestName, date, month, year, countryName, userName, userLastName] 
    .every(app.validation.empty)) { 
+1

ЛЮБОВЬ! благодаря! –

1

Вы можете использовать some() с ES6 arrow function в новейших браузерах

if ([contestName, date, month, year, countryName, userName, userLastName].some((v) => !app.validation.empty(v))) 

Вы можете даже избежать переменной

app.sendForm = { 
    init: function(){  
     $("#entry").submit(function(event) { 
      if(if (["#email","#first_name","#last_name","#birth_day","#birth_month","#birth_year","#contest1_name","#country",'#privacy_check'].some((v) => !app.validation.empty($(v))))){ 
       event.preventDefault(); 
       alert("There are errors with your form."); 
      } else { 
       alert("You have entered the competition."); 
      }  
     }); 
    } 
}; 
+2

Вы даже можете отказаться от множества переменных и поместить идентификаторы в массив. – Bergi

+0

@ Bergi это комментарий, направленный на меня или Пранава? –

+0

@phantom любой из вас :-) – Bergi