Почему этот стиль не добавляется в мой переключатель? - PullRequest
2 голосов
/ 27 января 2012

Я проверяю, что часть моей формы заполнена перед отправкой, и пытаюсь добавить класс, который выделит переключатель красным цветом, если он не был выбран.Я запускаю оповещение, поэтому знаю, что оно не проверено, но стиль не устанавливается.Есть идеи, что мне не хватает?

Вот мой текущий код:

CSS:

.form_error {
    border-color: #ee5f5b;
}

JQuery:

        for (i=1;i<4;i++) {

            if (!$('input[name=answer'+i+']:checked').val()) {
                alert("Not checked");
                $("#question_answer"+i).addClass("form_error");
            }
        }

HTML:

<td>
    <input type="radio" id="question_answer1" name="answer1" value="1" >Yes
    <input type="radio" id="question_answer1" name="answer1" value="0" >No
</td> 

Ответы [ 3 ]

4 голосов
/ 27 января 2012

Может ли быть проблема в том, что два входа имеют одинаковый атрибут ID?Поскольку они являются радиокнопками, им разрешено делить имя, но элементы никогда не должны совместно использовать идентификатор.

2 голосов
/ 27 января 2012

Как уже говорили другие, это может иметь отношение к дублирующим значениям id. Но в любом случае нет смысла выбирать одни и те же элементы с помощью двух разных селекторов. Как только вы выясните исходную проблему, я предлагаю попробовать что-то вроде этого:

for ( i = 1 ; i < 4 ; i++ ) {

  $( "input[name='answer" + i + "']" ).not( ":checked" ).toggleClass( "form_error", true );

}
// for
2 голосов
/ 27 января 2012

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

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