2011-01-06 8 views

Antwort

258

Mit Hilfe der attribute selector können Sie das Eingabeelement mit dem entsprechenden Wert auswählen. Dann müssen Sie das Attribut explizit festgelegt, mit .attr:

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

Seit jQuery 1.6, können Sie auch die .prop Methode mit einem Booleschen Wert verwenden (dies sollte die bevorzugte Methode sein):

$("input[name=mygroup][value=" + value + "]").prop('checked', true); 

Denken Sie daran, dass Sie zuerst das geprüfte Attribut von einem der Optionsfelder unter einer Optionsfeldgruppe entfernen müssen. Dann können Sie einem Optionsfeld in dieser Optionsfeldgruppe eine markierte Eigenschaft/ein angehängtes Attribut hinzufügen.

Code-Attribut von allen Radiobuttons einer Auswahlknopfgruppe Geprüft entfernen -

$('[name="radioSelectionName"]').removeAttr('checked'); 
+0

.prop ('checked', true) ist wahrscheinlich besser oder .is() – bladefist

+3

@bladefist: '.is' würde hier nicht helfen, aber ich stimme mit' .prop' überein. Es war damals nicht verfügbar;) Wird meine Antwort aktualisieren. Vielen Dank! –

+4

Wenn der Wert der Optionsschaltfläche eine Dezimalzahl hat, müssen Sie den Wert in Anführungszeichen setzen – Robert

11

Versuchen Sie folgendes:

$('input:radio[name="mygroup"][value="5"]').attr('checked',true); 

JS Fiddle demo.

+0

' selected' funktioniert nicht für Optionsfelder. –

+0

@Felix: nein, sollte es "überprüft" worden sein, seit bearbeitet. =) –

+0

@Dave "mygroup" nicht vergessen – hunter

8
$("input[name='mygroup'][value='5']").attr("checked", true); 
102

Es gibt einen besseren Weg, Radios und Checkbox; Sie müssen

$("input[name=mygroup]").val([5]); 

Hier ist die jQuery doc, das erklärt, ein Array von Werten an die val-Methode anstelle eines rohen Wert übergeben, wie es funktioniert: http://api.jquery.com/val/#val-value

Und .val([...]) auch mit Formelementen wie <input type="checkbox"> arbeitet, <input type="radio"> und <option> s innerhalb einer <select>.

Die Eingänge und die Optionen einen Wert hat, eines der Elemente des Arrays entspricht wird überprüft oder ausgewählt werden, während die einen Wert hat, wird nicht eines der Elemente des Arrays entsprechen nicht aktiviert oder nicht ausgewählten

Fiddle demonstriert diese Arbeit: https://jsfiddle.net/92nekvp3/

1

oder Sie können einfach Wert schreiben Attribut es:

$(':radio[value=<yourvalue>]').attr('checked',true); 

Das funktioniert für mich.

5

Wenn Sie Attributwert ändern wie über dem change Ereignis erwähnt wird so nicht ausgelöst, wenn aus irgendwelchen Gründen benötigt werden, können Sie es auslösen wie so

$('input[name=video_radio][value="' + r.data.video_radio + '"]') 
     .prop('checked', true) 
     .trigger('change'); 
0
var key = "Name_radio"; 
var val = "value_radio"; 
var rdo = $('*[name="' + key + '"]'); 
if (rdo.attr('type') == "radio") { 
$.each(rdo, function (keyT, valT){ 
    if ((valT.value == $.trim(val)) && ($.trim(val) != '') && ($.trim(val) != null)) 

    { 
    $('*[name="' + key + '"][value="' + (val) + '"]').prop('checked', true); 
    } 
    }) 
} 
+3

Können Sie bitte erklären, was Ihr Code in Ihrer Antwort tut? Zumindest ein Satz oder so. Und wie löst es die Lösung? Vielen Dank. – Alex

Verwandte Themen