SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Manuelles checken von Radiobuttons via Javascript

Unbeantwortet Dieser Beitrag hat 5 Antworten

Ohne Rang
18 Beiträge
uhemling erstellt 27 Jan. 2010 11:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

Folgendes Szenario: RadioButton Termin (Frei-Belegt) mit Auswahl "Frei" und "Belegt"

Ich habe den unten angegebenen Code um den aktuellen "checked" Wert auszulesen.
Nun möchte ich aber den Wert per Button (als Anhang einer anderen Funktion) von aktuell "Frei" auf "Belegt" setzen. Funktioniert aber scheinbar anders als bei einem Textfeld.

<html>
<script type="text/javascript">
function getTagFromIdentifierAndTitle(tagName,identifier,title,option) {
  var len = identifier.length;
  var tags = document.getElementsByTagName(tagName);
  for (var i=0; i < tags.length; i++) {
    var idString = tags[i].id;
    var nameString = tags[i].name;
    // get selected radio button value only
    if (option == "value" && tags[i].type == "radio" && (identifier == "RadioButtons" && nameString.indexOf(identifier) == nameString.length - len)) {
      var tagParentHTML = tags[i].parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.innerHTML;
   if (tagParentHTML.indexOf('FieldName="'+title+'"') > -1) {
    var radioButtons = document.getElementsByName(nameString);
    var radioValue = "";
    for (var x=0; x < radioButtons.length; x++) {
      if (radioButtons[x].checked) {
       radioValue = radioButtons[x].parentElement.title;
        break;
      }
    }
        var o = document.createElement("INPUT");
        o.type = "hidden";
        o.value = radioValue;
     return o;
   }
    }
    // get radio buttons group
    if (tags[i].type == "radio" && (identifier == "RadioButtons" && nameString.indexOf(identifier) == nameString.length - len)) {
      var tagParentHTML = tags[i].parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.innerHTML;
   if (tagParentHTML.indexOf('FieldName="'+title+'"') > -1) {
    return document.getElementsByName(nameString);
   }
    }
 // all other input or select type
    else if (tags[i].title == title && (identifier == "" || idString.indexOf(identifier) == idString.length - len)) {
      return tags[i];
    }
  }
  return null;
}
function setTerminBelegt()
{
var myRadioButtonsSelected = getTagFromIdentifierAndTitle("input","RadioButtons","Termin (Frei-Belegt)","value");
var myRadioButtonsValue = myRadioButtonsSelected.value;
alert(myRadioButtonsValue);
// Hier fehlt mir der Code zum setzen von "Belegt" !!!

//
}
</script>
<a href="javascript:setTerminBelegt()">Termin Belegen</a>
</html>

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 27 Jan. 2010 11:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Da Du den derzeit gesetzten Radiobutton ja auslesen kannst, hast Du also eine Referenz darauf. Du mußt nur den richtigen identifizieren und dessen checked-Eigenschaft auf false setzen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
18 Beiträge
uhemling Als Antwort am 27 Jan. 2010 12:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist ja mein Problem, ich finde aber leider nichts passendes dazu.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 27 Jan. 2010 12:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Aber Du hast doch die Referenz in der function getTagFromIdentifierAndTitle:
var radioButtons = document.getElementsByName(nameString);

Du mußt nur die Variable außerhalb der Funktion deklarieren, dann kannst Du auch an anderer Stelle darauf zugreifen. Wie dort mit einer for-Schleife durchgehen, prüfen, ob es der richtige ist, und entsprechend checked setzen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
18 Beiträge
uhemling Als Antwort am 28 Jan. 2010 15:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Sorry,

aber leider fehlt mir dazu die Basis. Das braucht noch etwas um da durchzusteigen. Es ist immer schwieriger auf den oberen Stufen einer Leiter einzusteigen.

Ohne Rang
18 Beiträge
uhemling Als Antwort am 28 Jan. 2010 15:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Sorry,

aber leider fehlt mir dazu die Basis. Das braucht noch etwas um da durchzusteigen. Es ist immer schwieriger auf den oberen Stufen einer Leiter einzusteigen.