2016-04-21 3 views
0

Ich habe eine Tabelle, in dieser Tabelle gibt es zwei Optionsfeld, und die Tabelle Daten aus der Datenbank füllen, ich bin foreach-Schleife, der Radio-Button wird in einer Reihe wiederholt aber wenn ich einen Radioknopf wähle, wird ein anderer automatisch abgewählt,Wie Radio-Button in einer Tabelle mit foreach-Schleife zu wiederholen

Hier ist mein Code, durch den ich meine Aufgabe erreichen möchte.

$(document).ready(function() { 
     $(document).on('click', 'input[type=radio][name=test]', function() 
      { 
      var clicked = localStorage['clicked']; 
      $('.' + related_class).prop('disabled', false); 

      $('input[type=radio][name=test]').not(':checked').each(function() 
      { var other_class = $(this).val(); 
      $('.' + other_class).prop('disabled', true); 
     }); 
    }); 
}); 

<table>  
<c:forEach items="${List2}" var="as"> 
      <tr> 
       <td><input type="hidden" name="Id" value="${as.id}"/>${as.id}</td> 
       <td><input type="hidden" name="RuleName" value="${as.ruleName}"/>${as.ruleName}</td> 
       <td>&nbsp;&nbsp;<input type="radio" name="fixed" value="Fixed"></td> 
       <td>&nbsp;&nbsp; <input type="radio" name="repeats" VALUE="radio20"><select name="Repeats" style="width: 80px;" > 
         <c:forEach items="${listfrequency}" var="freq"> 
          <option value="${freq.frequencyName}"/> 
          <c:out value="${freq.frequencyName}" /> 
          </c:forEach></select></td> 

       <td> 

      </tr> 
</c:forEach> 
</table> 
+0

Verwenden Sie einen eindeutigen Namen für die Gruppe von Radio, die Sie eine Gruppe machen möchten; – itzmukeshy7

+0

versuchen Sie zu verifizieren, dass Ihr Optionsfeld nicht den gleichen Namen hat. –

+0

Wollen Sie sagen, dass Sie tatsächlich mehrere Auswahlmöglichkeiten wünschen? Verwenden Sie Kontrollkästchen, keine Optionsfelder. – BalusC

Antwort

0

Es liegt daran, dass der Name der alle Funk Eingänge gleich sind (repeats und fixed).

Sie müssen sie für jede Zeile einzeln festlegen, damit die Auswahl eines anderen Optionsfelds nicht automatisch aufgehoben wird. Um sie eindeutig zu machen, fügen Sie den Indexwert der foreach-Schleife an den Namen der Optionsfelder an.

Ich kenne nicht die Syntax, wie Index/Zähler-Wert von foreach-Schleife in Ihrem Beispiel zu erhalten. Aber es wäre wie folgt.

<td>&nbsp;&nbsp;<input type="radio" name="fixed${indexValue}" value="Fixed"></td> 
       <td>&nbsp;&nbsp; <input type="radio" name="repeats${indexValue}" VALUE="radio20"><select name="Repeats" style="width: 80px;" > 
         <c:forEach items="${listfrequency}" var="freq"> 
          <option value="${freq.frequencyName}"/> 
          <c:out value="${freq.frequencyName}" /> 
          </c:forEach></select></td> 

$ {} Indexwert ersetzen diese mit Ihrer tatsächlichen Index/Zählervariable.