2016-01-22 5 views
1

У меня есть форма, где мне нужно проверить только отмеченные флажки, их файл и ввод текста заполнены. Моя проблема заключается в том, когда отмечены два или более флажка, и одна строка заполнена правильно, а другая или другие неправильно заполнены, она содержит некоторые ошибки.Проверка ввода и флажков

Я искал решение, не повезло, вот мой код:

function send() 
{ 
$('input[type=checkbox]:checked').each(function() { 
var vals = $(this).val(); 
var arch = document.getElementById(vals); 
var rcant = document.getElementById("ke"+vals); 

if(arch.value==""){ 
    arch.required = true; 
    alert("Please select the file to send"); 
    arch.focus(); 
}else  
if(rcant.value==""){ 
    rcant.required = true; 
    alert("Please write the quantity to send"); 
    rcant.focus(); 
} 

if(arch.value != "" && rcant.value != "") 
{ 
    formula.submit(); 
} 

}); 
} 

EDIT:

ERROR

если два флажка проверяются, один заполнен, но другой пустое, это заставляет меня ошибка & фокусируется, но она представляет, и форма выполняет работу, и результат я получаю sql-предупреждение, и электронное письмо заполняется пустым пространством, в которое должны быть заполнены входы

+0

Исправьте привести пример ошибок, которые вы получаете. – metame

ответ

2

Проблема заключается в том, что вы отправляете форму внутри цикла .each(), поэтому она отправляет, как только обнаруживает один флажок, чьи входы заполнены правильно.

Вместо этого используйте переменную, чтобы отслеживать, были ли обнаружены ошибки проверки во время цикла. Затем проверьте переменную в конце цикла.

function send() { 
 
    var form_ok = true; 
 
    $('input[type=checkbox]:checked').each(function() { 
 
    var vals = $(this).val(); 
 
    var arch = document.getElementById(vals); 
 
    var rcant = document.getElementById("ke" + vals); 
 

 
    if (arch.value == "") { 
 
     arch.required = true; 
 
     alert("Please select the file to send"); 
 
     arch.focus(); 
 
     form_ok = false; 
 
     return false; // stop looping once we find an error 
 
    } else 
 
    if (rcant.value == "") { 
 
     rcant.required = true; 
 
     alert("Please write the quantity to send"); 
 
     rcant.focus(); 
 
     form_ok = false; 
 
     return false; // stop looping once we find an error 
 
    } 
 
    }); 
 

 
    if (form_ok) { 
 
    formula.submit(); 
 
    } 
 
}

+0

Ну, он не должен проверять все флажки, только флажки, которые проверяются, нуждаются в проверке ввода – Rhopercy

+0

. Ах, я неправильно понял вопрос. – Barmar

+0

Спасибо, это сработало! – Rhopercy

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