web-dev-qa-db-de.com

Optionsfeld "jQuery set"

Ich versuche ein Optionsfeld zu setzen. Ich möchte es mithilfe des Werts oder der ID festlegen.

Das habe ich versucht.

$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);

newcol ist die ID des Optionsfelds.

Vielleicht ist eine kleine Bearbeitung angebracht.

Es gibt zwei Gruppen von Optionsfeldern, eines mit Spalten und das andere mit Zeilen. Ich sehe den Punkt darin, keine IDs zu verwenden. Mein Fehler. Also habe ich als Beispiel:

<input type="radio" name="rows" class="listOfCols" 
   style="width: 50%; " value="Site"></input>

und

<input type="radio" name="cols" class="listOfCols" 
   style="width: 50%; "  value="Site"></input>

wenn die IDs entfernt sind, muss ich die richtige einstellen.

126
mike628

Ihr Selektor sucht nach dem Nachkommen eines Elements input:radio[name=cols] Mit der ID newcol (und dem Wert dieser Variablen).

Versuchen Sie dies stattdessen (da Sie sowieso nach ID auswählen):

$('#' + newcol).prop('checked',true);

Hier ist eine Demo: http://jsfiddle.net/jasper/n8CdM/1/

Ab jQuery 1.6 lautet die bevorzugte Methode zum Ändern einer Eigenschaft .prop(): http://api.jquery.com/prop

193
Jasper

Ich habe die Antwort hier gefunden:
https://web.archive.org/web/20160421163524/http://vijayt.com/Post/Set-RadioButton-value-using-jQuery

Grundsätzlich MÜSSEN Sie den Wert als Array übergeben, wenn Sie ein Optionsfeld aktivieren möchten:

$('input:radio[name=cols]').val(['Site']);
$('input:radio[name=rows]').val(['Site']);
75
Chococroc

In Ihrer Auswahl scheinen Sie zu versuchen, ein verschachteltes Element Ihres Optionsfelds mit einer bestimmten ID abzurufen. Wenn Sie ein Optionsfeld aktivieren möchten, sollten Sie dieses Optionsfeld in der Auswahl auswählen und nicht etwas anderes:

$('input:radio[name="cols"]').attr('checked', 'checked');

Dies setzt voraus, dass Sie das folgende Optionsfeld in Ihrem Markup haben:

<input type="radio" name="cols" value="1" />

Wenn Ihr Optionsfeld eine ID hatte:

<input type="radio" name="cols" value="1" id="myradio" />

sie könnten direkt einen ID-Selektor verwenden:

$('#myradio').attr('checked', 'checked');
15
Darin Dimitrov

Sie können den folgenden Code versuchen:

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

Dies setzt das Attribut, das für die Funkspalten und den Wert geprüft wurde, wie angegeben.

11
punita.gosar

Warum brauchst du 'input:radio[name=cols]'. Sie kennen Ihr HTML nicht, können dies aber einfach tun, wenn Sie davon ausgehen, dass die IDs eindeutig sind.

$('#'+newcol).prop('checked', true);
9
elclanrs

Versuche dies:

$("#" + newcol).attr("checked", "checked");

Ich hatte Probleme mit attr("checked", true), daher verwende ich eher die obigen.

Wenn Sie die ID haben, benötigen Sie auch keine weiteren Informationen zur Auswahl. Eine ID ist eindeutig.

6
The Awnry Bear

Die Verwendung von .filter() funktioniert ebenfalls und ist flexibel für ID, Wert und Namen:

$('input[name="cols"]').filter("[value='Site']").attr('checked', true);

(gesehen auf diesem Blog )

2
dhc

Da newcol die ID des Optionsfelds ist, können Sie es einfach wie folgt verwenden.

$("#"+newcol).attr('checked',true);
2

Frühere Antworten kombinieren:

$('input[name="cols"]').filter("[value='Site']").click();
2
Graham Laight

Sie können einfach verwenden:

$("input[name='cols']").click();
0
Markoj

Die gewählte Antwort funktioniert in diesem Fall.

Bei der Frage ging es jedoch darum, das Element basierend auf der Funkgruppe und der dynamischen ID zu finden, und die Antwort kann auch dazu führen, dass das angezeigte Optionsfeld nicht beeinflusst wird.

Diese Zeile wählt genau das aus, wonach gefragt wurde, während die Änderung auch auf dem Bildschirm angezeigt wird.

$('input:radio[name=cols][id='+ newcol +']').click();
0
me_