Я пытаюсь написать некоторую проверку формы в jQuery. Это основное, я проверяю только пустые входы.Зацикливание через несколько типов входов
Однако в моей форме есть три разных типа элементов: <input type="text">
, <select>
и <input type="checkbox">
. У меня возникают проблемы с моей проверкой работы со всеми этими.
Это мой код до сих пор:
частичной HTML
<input type="hidden" name="required" value="title,first_name,family_name,job_title,company_name,country,address_1,town_city,post_code,telephone_2,email,subprimary_activity,subjob_title2,subscription" />
JAVASCRIPT
$("input[name=submit_form]").on("click", function(e) {
e.preventDefault();
var missing_items = [];
var required_array = $("input[name=required]").val().split(",");
var i;
for (i = 0; i < required_array.length; i++) {
var input_name = required_array[i];
if ($("input[name=" + input_name + "]").val() == "" || $("select[name=" + input_name + "]").val() == "" || !$("input[name=" + input_name + "]").is(":checked")) {
missing_items.push(input_name);
}
}
alert(missing_items);
});
alert()
в настоящее время уведомляет меня о каждом элементе, будь это или нет отсутствует значение/проверка. Я знаю это, потому что это потому, что у моего if
есть три параметра, и как-то не может быть <input>
и a <select>
, он всегда будет оценивать true.
Как я могу переписать это так, чтобы он функционировал правильно? Есть ли способ проверить, что типа ввода является элементом, или если существует определенный элемент и, следовательно, выполняется только соответствующий validaton?
например.
if (is input text) {
check val() ! empty
}
else if (is select) {
check val() !empty
}
else if (is input checkbox) {
check :checked
}
Должен ли я работать с этим внутри цикла 'for' или работать в цикле' for' внутри каждого '.each()'? – mpdc
'each()' уже представляет собой цикл, подобный вашему 'for', поэтому взгляните на документ, он действительно стоит того, что вы хотите, я думаю; сначала вы выбираете все поле одного типа с помощью селектора JQuery и каждый цикл() для каждого из них, поэтому вы можете сделать свой чек внутри – Blag
@mpdc Я поместил неправильную ссылку документа, так что отредактируйте; + добавить образец того, как он работает;) – Blag