Cómo verificar un valor basado en un botón de radio de un grupo de botones de radio usando jquery

Quiero crear un sistema de clasificación por estrellas para una persona, para este usuario ingresa el valor de cinco categorías diferentes y quiero mostrar el promedio de esos valores en un grupo de botones de opción. Obtuve el promedio, pero ahora no entiendo cómo mostrar el promedio.

$("input[name='overall']").each(function(){
                    if(this.value == response.average){
                        $(this).attr('checked', true); 
                    }
                });

Quiero mostrar el promedio sobre este campo----

<div id="overall_rating" class="Clear">
<input id="overall" name="overall" type="radio" class="star {split:5} required" disabled="disbled" value="0.2" />
<input id="overall" name="overall" type="radio" class="star" value="0.4"/>
<input id="overall" name="overall" type="radio" class="star" value="0.6"/>
<input id="overall" name="overall" type="radio" class="star" value="0.8"/>
<input id="overall" name="overall" type="radio" class="star" value="1.0"/>
<input id="overall" name="overall" type="radio" class="star" value="1.2"/>
<input id="overall" name="overall" type="radio" class="star" value="1.4"/>
<input id="overall" name="overall" type="radio" class="star" value="1.6"/>
<input id="overall" name="overall" type="radio" class="star" value="1.8"/>
<input id="overall" name="overall" type="radio" class="star" value="2.0"/>
<input id="overall" name="overall" type="radio" class="star" value="2.2"/>
<input id="overall" name="overall" type="radio" class="star" value="2.4"/>
<input id="overall" name="overall" type="radio" class="star" value="2.6"/>
<input id="overall" name="overall" type="radio" class="star" value="2.8"/>
<input id="overall" name="overall" type="radio" class="star" value="3.0"/>
<input id="overall" name="overall" type="radio" class="star" value="3.2"/>
<input id="overall" name="overall" type="radio" class="star" value="3.4"/>
<input id="overall" name="overall" type="radio" class="star" value="3.6"/>
<input id="overall" name="overall" type="radio" class="star" value="3.8"/>
<input id="overall" name="overall" type="radio" class="star" value="4.0"/>
<input id="overall" name="overall" type="radio" class="star" value="4.2"/>
<input id="overall" name="overall" type="radio" class="star" value="4.4"/>
<input id="overall" name="overall" type="radio" class="star" value="4.6"/>
<input id="overall" name="overall" type="radio" class="star" value="4.8"/>
<input id="overall" name="overall" type="radio" class="star" value="5.0"/>
</div>

Por favor, ayúdame a encontrar la solución a este problema.

preguntado el 28 de agosto de 12 a las 14:08

No puede tener varios elementos con la misma identificación (probablemente no sea lo que está causando el problema, pero no puede) -

Estás seguro response.average está disponible en ese contexto? -

intente usar .prop() en lugar de .attr() para verificar el botón de opción... -

¿Qué quiere decir con "mostrar el promedio sobre este campo"? -

Su código debería estar funcionando, si response.average está realmente disponible: jsfiddle.net/eT5VF -

2 Respuestas

Espero que este código te ayude.

var average = response.average;

$("input[value='" + average + "']").attr("checked", "checked");

Solo necesita verificar si el promedio de respuesta está contenido en el atributo de valor de un botón de opción.

Respondido 28 ago 12, 15:08

Todos sus campos de entrada tienen el mismo ID. Los ID tienen que ser únicos en una página web. Intente corregir eso primero (es decir, elimine los ID de las entradas ya que no los necesita aquí).

Luego prueba $(this).prop("checked", true);

Respondido 28 ago 12, 14:08

TypeError: $(this).prop no es una función $(this).prop("checked", true); - awsumnik

Gracias a todos por su ayuda. En realidad, el valor de response.average era de tipo cadena, lo he analizado para que sea de tipo flotante y ahora el código funciona. Gracias. - awsumnik

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.