为什么这种风格没有添加到我的单选按钮?

时间:2012-01-27 13:25:31

标签: jquery html css radio-button

我正在验证我的表单中的部分内容是否已完成,然后尝试添加一个类,如果尚未选中,则会将单选按钮标记为红色。我正在触发警报,所以我知道它没有被检查但风格未能设置。知道我错过了什么吗?

这是我目前的代码:

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 个答案:

答案 0 :(得分:4)

问题可能是两个输入具有相同的ID属性吗?由于它们是单选按钮,因此它们可以共享名称,但元素不应共享ID。

答案 1 :(得分:2)

实际上,您无法分辨,因为大多数浏览器don't render radio buttons with borders

答案 2 :(得分:2)

正如其他人所说,它可能与重复的id值有关。但无论如何使用2个不同的选择器选择相同的元素是没有意义的。一旦你弄清楚原来的问题,我建议尝试这样的事情:

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

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

}
// for