2016-05-18 15 views
1

Ich habe mehrere Radio-Button in der Tabelle. wie javascript oder jquery diesen radiobutton-wert hinzufügen und den standardgesamtwert ändern kann, ohne auf die schaltfläche zu klicken. Ich meine, wenn der Benutzer ein Optionsfeld klicken, um es automatisch den Wert in total_score div ändernÄndern Div-Wert basierend auf insgesamt mehrere Radiobutton Wert

<table> 
    <tr> 
    <td> 
     <input type="radio" name="evaluation_1_3" value="1">1 
     <br> 
    </td> 
    <td> 
     <input type="radio" name="evaluation_1_3" value="2">2 
     <br> 
    </td> 
    <td> 
     <input type="radio" name="evaluation_1_3" value="3">3 
     <br> 
    </td> 
    <td> 
     <input type="radio" name="evaluation_1_3" value="4">4 
     <br> 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <input type="radio" name="evaluation_2_1" value="1">1 
     <br> 
    </td> 
    <td> 
     <input type="radio" name="evaluation_2_1" value="2">2 
     <br> 
    </td> 
    <td> 
     <input type="radio" name="evaluation_2_1" value="3">3 
     <br> 
    </td> 
    <td> 
     <input type="radio" name="evaluation_2_1" value="4">4 
     <br> 
    </td> 
    </tr> 
    <tr> 
    <td colspan="2" bgcolor="#ffffff" style=" height:;"> 
     <div id="total_score" name="total_score" align="center"> 
     <h3>0</h3> 
     </div> 
    </td> 
    </tr> 
</table> 

Ich fand unter Codierung ist gut, aber nicht automatisch den Standard div ändern.

$(document).ready(function() { 

     var evaluation_1_1 = $('input[name="evaluation_1_1"]:checked').val(); 
     var evaluation_1_2 = $('input[name="evaluation_1_2"]:checked').val(); 
var totals = parseInt(evaluation_1_1) + parseInt(evaluation_1_2); 
     alert(totals); 
     document.getElementById("total_score").innerHTML = totals; 
     } 
+0

Sie ** Radio-Button verwenden ** 'wird nur ein Wert an einem Time' ausgewählt werden, warum Sie insgesamt brauchen? es ist mehr wie das Erhalten der Wert von ausgewählten Radio-Taste – guradio

Antwort

1

können Sie :radio Selector verwenden alle das Funkelement finden dann wieder in seine Änderungsereignis abonnieren.

$(document).ready(function() { 
 
    $(':radio').on('change', function() { 
 
    var evaluation_1_3 = $('input[name="evaluation_1_3"]:checked').val() || 0; 
 
    var evaluation_2_1 = $('input[name="evaluation_2_1"]:checked').val() || 0; 
 
    var totals = parseInt(evaluation_1_3, 10) + parseInt(evaluation_2_1, 10); 
 
    $("#total_score h3").html(totals); 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td> 
 
     <input type="radio" name="evaluation_1_3" value="1">1 
 
     <br> 
 
    </td> 
 
    <td> 
 
     <input type="radio" name="evaluation_1_3" value="2">2 
 
     <br> 
 
    </td> 
 
    <td> 
 
     <input type="radio" name="evaluation_1_3" value="3">3 
 
     <br> 
 
    </td> 
 
    <td> 
 
     <input type="radio" name="evaluation_1_3" value="4">4 
 
     <br> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td> 
 
     <input type="radio" name="evaluation_2_1" value="1">1 
 
     <br> 
 
    </td> 
 
    <td> 
 
     <input type="radio" name="evaluation_2_1" value="2">2 
 
     <br> 
 
    </td> 
 
    <td> 
 
     <input type="radio" name="evaluation_2_1" value="3">3 
 
     <br> 
 
    </td> 
 
    <td> 
 
     <input type="radio" name="evaluation_2_1" value="4">4 
 
     <br> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td colspan="2" bgcolor="#ffffff" style=" height:;"> 
 
     <div id="total_score" name="total_score" align="center"> 
 
     <h3>0</h3> 
 
     </div> 
 
    </td> 
 
    </tr> 
 
</table>

+0

Ihre Codierung ist richtig, aber ich habe ein Problem, wenn ich bei der Auswahl der ersten Radio-Taste ist der Wert NAN .. wenn ich klicken Sie beide zeigen den Wert. – airi

+0

@airi, Siehe den Codeausschnitt – Satpal

+0

Danke für die Antwort. – airi

0
function total() { 
    var sum = 0; 
    $('input[type="radio"]:checked').forEach(function(el) { sum += $(el).val(); }); 

    document.getElementById("total_score").innerHTML = sum; 
} 

$('input[type="radio"]').on('click' , total);

console.log(total()); 
0

$(document).ready(function() { 
 

 
     $('input[name*=evaluation_1],input[name*=evaluation_2]').each(function(){ 
 
     $(this).on('click',function(){ 
 
     var thisValue = $(this).val(); 
 
     var totals = parseInt($('#total_score').text())+ parseInt(thisValue); 
 
     $('#total_score').find('h3').text(totals); 
 
     }); 
 
     }); 
 
     
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<td> <input type="radio" id="evaluation_1_3" name="evaluation_1_3" value="1" >1<br></td> 
 
       <td> <input type="radio" id="evaluation_1_3" name="evaluation_1_3" value="2" >2<br></td> 
 
       <td> <input type="radio" id="evaluation_1_3" name="evaluation_1_3" value="3" >3<br></td> 
 
      <td> <input type="radio" id="evaluation_1_3" name="evaluation_1_3" value="4" >4<br></td> 
 

 
    <td> <input type="radio" id="evaluation_2_1" name="evaluation_2_1" value="1" >1<br></td> 
 
       <td> <input type="radio" id="evaluation_2_1" name="evaluation_2_1" value="2" >2<br></td> 
 
       <td> <input type="radio" id="evaluation_2_1" name="evaluation_2_1" value="3" >3<br></td> 
 
       <td> <input type="radio" id="evaluation_2_1" name="evaluation_2_1" value="4" >4<br></td> 
 

 
<td colspan="2" bgcolor="#ffffff" style=" height:;"><div id="total_score" name="total_score" align="center"><h3>59</h3></div></td>

Verwandte Themen