Валидатор Javascript - PullRequest
       0

Валидатор Javascript

0 голосов
/ 13 декабря 2011

Привет. Я пытаюсь проверить возможность, которую пользователь проверяет, и если он ничего не проверил на странице, то отобразит сообщение об ошибке и разрешит ему проверить, прежде чем он продолжит.

вот мой код

for (var j=0;j<f10; j++ )
{
    if (document.pizza.field10[j].checked == true)
      { check2 ++ ; }
}// for ends heree

if (check2 == 0 )
            {
        alert("Error!!: Please select atleast one topping for Pizza.");
  document.pizza.field10.focus();
  return false;
            }

/*Field05 Validation Ends Here*/

и var f10 = document.pizza.field10.length ;// field05 это общая длина, а f10 это переменная.

Я не знаю, что не так, даже если пользователь не проверял опцию, он все еще продолжается

Спасибо

РЕДАКТИРОВАТЬ здесь HTML-код

<p>Toppings:</p>
<table width="400" class="toppings">
<tr>

<td><label>
  <input type="checkbox" name="field10" value="chicken"  />
  Chicken</label></td>

<td><label>
  <input type="checkbox" name="field10" value="beef" />
  Beef</label></td>
</tr>
<tr>
<td><label>
  <input type="checkbox" name="field10" value="green pepper"  />

  Green Pepper</label></td>

<td><label>
  <input type="checkbox" name="field10" value="olives"  />
  Olives</label></td>
</tr>
<tr>
<td><label>
  <input type="checkbox" name="field10" value="onions" />
  Onions</label></td>

<td><label>
  <input type="checkbox" name="field10" value="red pepper"  />
  Red Pepper</label></td>
</tr>
</table>

РЕДАКТИРОВАТЬ2: вот тег формы

<form name='pizza' id='pizza' method='post'
               action='https://cs.senecac.on.ca/~int222/cgi-bin/assign3.cgi'
               onsubmit='return FormValidation();'>

и вот кнопка отправки

<p> <input class="button" name="Submit" type="submit" value="Submit" />   <input class="button" name="reset" type="reset" value="Reset" />

</p></div>

Ответы [ 3 ]

1 голос
/ 13 декабря 2011

Вам нужно изменить свой код на что-то вроде this JSFiddle

Важной частью является следующее:

    var fields = document.getElementsByName("field10");

(И полный код здесь, когда истекает срок действия скрипки JS)

var check2 = 0;
var fields = document.getElementsByName("field10");

for (var j = 0; j < fields.length - 1; j++) {
    if (fields[j].checked == true) {
        check2++;
    }
} // for ends heree
if (check2 == 0) {
    alert("Error!!: Please select at least one topping for Pizza.");
    return false;
}
1 голос
/ 13 декабря 2011

Проблема была

document.pizza.field10.focus();

Я думаю, вы не можете сфокусировать кнопки или поля флажков :) Спасибо всем за помощь.

1 голос
/ 13 декабря 2011

Помимо положительного значения check2 устанавливается на 0 до выполнения вашего кода и, возможно, переименования кнопки отправки (согласно моему комментарию). Я бы попробовал использовать инструмент отладки firebug , чтобы пройтись по вашей функции FormValidation(), чтобы убедиться, что ваш код фактически извлекает узлы DOM и посмотреть, где check2 увеличивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...