Kann nicht festlegen input checked="checked" via jQuery

Ich habe eine Tabelle, deren Zeilen enthalten, die radio-button-Gruppen etwa so:

<td class="usegsm">
  <input type="hidden" class="use-gsm" value='<%# DataBinder.Eval(Container.DataItem, "use_gsm") %>' />
  <input type="hidden" class="use-gsm-lineup" value='<%# DataBinder.Eval(Container.DataItem, "use_gsm_lineup") %>' />
  <input type="radio" id="radio1-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" name="radio-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" class="events-lineups" />
  <label for="radio1-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>">Events &amp; Lineups</label>
  <input type="radio" id="radio2-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" name="radio-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" class="events" />
  <label for="radio2-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>">Events</label>
  <input type="radio" id="radio3-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" name="radio-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" class="none" checked="checked" />
  <label for="radio3-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>">None</label>
</td>

Wenn die Seite geladen wird (innen-Dokument.bereit) ich rufe diese Funktion zur überprüfung der richtigen radio-buttons, auf der Grundlage der oben genannten Werte für input.use-gsm und input.use-gsm-lineup:

function setGsmButtonStates() {
      $('td.usegsm').buttonset(); /* http://jqueryui.com/demos/button/#radio */
      $('td.usegsm').each(function(i) {
        var use_gsm = $(this).children('input.use-gsm').val();
        var use_gsm_lineup = $(this).children('input.use-gsm-lineup').val();

        if (use_gsm == 'Y' && use_gsm_lineup == 'Y') {
          $(this).children('input.events-lineups').attr('checked', true);
        }
        else if (use_gsm == 'Y' && use_gsm_lineup != 'Y') {
          $(this).children('input.events').attr('checked', true);
        }
        else {
          $(this).children('input.none').attr('checked', true);
        }

      });
    } 

Für einige Grund-Einstellung .attr('checked',true) oder sogar .attr('checked','checked') hat keine Wirkung.

Bin ich mit $.each() oder .attr() falsch?

  • Sie sind mit .attr() fein ich denke, das bedeutet, dass das Thema haftet, ist nichts ausgewählt. .children() entspricht nur die sofortige Kindern, versuchen Sie es zu .find() und sehen, ob es funktioniert. Tut .buttonset() wickeln den Eingängen vielleicht?
  • Basierend auf seinen Beispiel-code .Kinder() sollte die Rücksendung des richtigen Elemente.
InformationsquelleAutor Mark Richman | 2010-12-17
Schreibe einen Kommentar