2009-05-05 7 views
0

Ich habe HTML-Code für Radios:So aktualisieren Wert eines Funk mit JQuery

<input type='radio' name='a_27' value='Yes' id='a_27_0' /> 

<input type='radio' name='a_27' value='No' id='a_27_1' /> 

Ich versuche, den ausgewählten Wert des Radios stellen Sie diesen Code verwenden:

var field="a_" + this.id; 
$('[name="' + field + '"]').val(this.value); 
console.log("name is " + field + ", val is " + this.value); 

Es funktioniert jedoch nicht, es passiert nichts, wenn es läuft. Hier ist die Ausgabe von Firebug-Konsole, die nach der 3. Zeile auftritt:

Name a_27 ist, val ist ja

Irgendwelche Ideen?

Ich würde eine Methode bevorzugen, die auch auf <select>s funktionieren würde, also würde ich nicht zusätzlichen/seperaten Code für Radios schreiben und auswählen müssen.

Bearbeiten: Ein seltsames Problem Ich habe festgestellt, dass, obwohl mein HTML-Code einen anderen Wert (Ja/Nein) gibt, in Firebug zeigt beide Radios als mit dem Wert "Ja". Wenn ich Nein auswähle und auf Speichern klicke, erhält die JavaScript-Funktion immer noch "Ja" statt "Nein". Mache ich etwas falsch?

Edit 2: Die volle Funktion:

function processMultiOptAnswers() 
{ 
    $.each(multiOpts,function() 
     { 
      var field="a_" + this.id; 
      console.log("name is " + field + ", val is " + this.value); 

      $('[name="' + field + '"]').val(this.value); 
     } 
    ); 
} 
+0

Können Sie einige zusätzliche Details hinzufügen, insbesondere den Kontext, in dem Ihr Javascript aufgerufen wird, da es helfen würde, genau zu wissen, was "das" ist. Ich schätze, es ist ein Onclick? – roborourke

+0

Es passiert am $ (Dokument) .ready() –

+0

$ ('[Name = "' + Feld + '"]'). Val (this.value); Das wählt BEIDE Radios ... Warum sollten Sie wollen, dass beide Radios den gleichen Wert haben? Sind Sie sicher, dass Sie mit dem Attribut checked = "checked" arbeiten wollen, weil dies im Moment keinen Sinn ergibt? Auch wenn es auf Dokument bereit läuft, sagst du, dass das '= Dokument? – roborourke

Antwort

0

Ihre Log sein sollte, wenn this.value anders.

$('[name="' + field + '"]').val(this.value); 
console.log("name is " + field + ", val is " + $('[name="' + field + '"]').val()); 

Um es

$('[name="' + field + '"]').attr("checked", "checked"); 

ich nicht getestet haben, ausgewählt zu machen, aber Sie könnten das Attribut von den anderen zu entfernen.

+0

Seltsam, das gibt den neuen (geänderten) Wert, aber auf dem Formular selbst ist der entsprechende Wert nicht ausgewählt. Ist etwas falsch mit meinem HTML-Code zum Erstellen der Radios? –

+0

Sehen Sie meine Bearbeitung oben –

+0

Das Radio wurde ausgewählt, aber es zeigt immer noch den gleichen Wert für alle Radios ... –

Verwandte Themen