const n = new FormData(this);
// зачем тут был нужен t ?
// правила - имя поля: ['правило', параметры...]
const rules={
'_': ['nempy'], // по умолчанию будем проверять на непустое значение
'frominternet': ['or','fromcomputer','frominternet'], // здесь имена полей, в которых обязано быть хотя бы одно непустое значение
'fromcomputer': ['or','fromcomputer','frominternet']
}
for (let [e, a] of n.entries()) {
let rule=rules[e]||rules['_'];
if(rule[0]==='nempty'){
if (n.get(e) === ""){
anim(e);
}
} else if (rule[0]==='or') {
let found=false;
for(let i=1;i<rule.length;i++){
if (n.get(rule[i]) !== "") found=true;
}
if(!found){
anim(e);
}
}
}
button: $(form).find("input[name='button']").val(),
button: $(form).find("input[name='button']").data('formid'),
<button class="button" data-formid="form1">Отправить</button>