Проверка содержимого нескольких полей ввода jQuery
Я создаю базовый кроссворд, используя поля ввода в таблице HTML, и пытаюсь проверить правильность ответа с помощью jQuery. Если ответ правильный, мне также нужно открыть диалоговое окно X, а если ответ неправильный, мне нужно открыть диалоговое окно Y.
Взяв фрагмент кода ниже в качестве примера...
<td><input name="r1c1" type="text" id="r1c1-input" maxlength="1"></td>
<td><input name="r1c2" type="text" id="r1c2-input" maxlength="1"></td>
<td><input name="r1c3" type="text" id="r1c3-input" maxlength="1"></td>
<td><input name="r1c4" type="text" id="r1c4-input" maxlength="1"></td>
<td><input name="r1c5" type="text" id="r1c5-input" maxlength="1"></td>
... как проверить, что в каждое поле было введено следующее?
r1c1 = A
r1c2 = B
r1c3 = C
r1c4 = D
r1c5 = E
Большое спасибо.
1 ответ
Самый простой способ - написать функцию, которая использует базовый цикл и возвращает логическое значение. Получить значение каждого input
поле с $('#fieldId')
сравните его с ожидаемыми ответами, а затем основывайте следующее действие на значении, возвращенном функцией проверки ответов. Основываясь на вашем примере фрагмента, вот один из способов сделать это:
var fields = ['r1c1', 'r1c2', 'r1c3', 'r1c4', 'r1c5'],
answers = ['A', 'B', 'C', 'D', 'E'];
var checkAnswers = function(fieldArray, answerArray) {
for (var i = 0; i < fieldArray.length; i += 1) {
if ($('#' + fieldArray[i] + '-input').val() !== answerArray[i]) {
// This field doesn't have the correct answer
return false;
}
}
// Made it all the way through the loop, so all answers match
return true;
}
if (checkAnswers(fields, answers)) {
// dialog X
} else {
// dialog Y
}