2013-06-17 3 views
0

Я создаю базовое кроссворд, используя поля ввода в таблице HTML, и я хочу проверить правильность ответа с помощью jQuery. Если ответ правильный, я также необходимо, чтобы открыть диалоговое окно X, и если ответ неверен мне нужно, чтобы открыть диалоговое Y.Проверка содержимого нескольких полей ввода jQuery

Беря фрагмент кода ниже в качестве примера ...

<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 = А

R1C2 = В

r1c3 = С

r1c4 = D

r1c5 = E

Большое спасибо.

+0

Вы ищете что-то другое, кроме оператора '&&', чтобы объединить несколько проверок? – Barmar

ответ

1

Самый простой способ - написать функцию, которая использует базовый цикл и возвращает значение Boolean. Получите значение каждого поля 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 
} 
Смежные вопросы