Проверка содержимого нескольких полей ввода 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
}
Другие вопросы по тегам