PalinkatoR: Radio-Buttons lassen sich nicht auswählen

Hi.
Habe folgendes Proglem. Schreibe an einer HTA-Datei, die beim Ausführen die Anzahl der vorhandenen Netzwerkadapter feststellen soll und dann die gleiche Anzahl an Radio-Buttons erstellen soll. Es soll also alles unterm Window_Onload Sub laufen. Das Problem besteht darin, dass sie die per VBScript erstellten Radio-Buttons nicht auswählen lassn. Hier meine Test-HTA zur Erstellung von Radio-Buttons.

<html>
<head>
  <title>RadioCreateTest</title>
  <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
  <HTA:APPLICATION ID="RadioCreateTest"
    APPLICATIONNAME="RadioCreateTest"
    BORDER="thick"
    CAPTION="yes"
    SHOWINTASKBAR="yes"
    SINGLEINSTANCE="yes"
    SYSMENU="yes"
    WINDOWSTATE="normal"
  >
  <script language="vbscript">
Sub Window_Onload

For k = 1 to 3
set ch1 = document.createElement("input")
    ch1.type = "Radio"
    ch1.name = "NetwConn"
    ch1.id = "NetwConn " & k
    ch1.value = k
    ch1.checked = "checked"
    set lb1 = document.createElement("label")
    lb1.htmlFor = "Radio " & (k-1)
    lb1.appendChild(document.createTextNode("Radio " & (k-1)))
    MyForm.appendChild(ch1)
    MyForm.appendChild(lb1)
    MyForm.appendChild(document.createElement("br"))

Next

End Sub

</script>
</head>
<body>
 <form action="#" name = "MyForm" >

</form>
</body>
</html>

Ich habe überhaupt keinen Plan warum sich die Radio-Buttons nicht auswählen lassen. :(

Danke im Voraus
P.

  1. Hallo,

    Habe folgendes Proglem. Schreibe an einer HTA-Datei, die beim Ausführen die Anzahl der vorhandenen Netzwerkadapter feststellen soll und dann die gleiche Anzahl an Radio-Buttons erstellen soll. Es soll also alles unterm Window_Onload Sub laufen. Das Problem besteht darin, dass sie die per VBScript erstellten Radio-Buttons nicht auswählen lassn.

    Ja, der IE ist unergründlich ;-)

    Hier meine Test-HTA zur Erstellung von Radio-Buttons.

    Sub Window_Onload

    For k = 1 to 3
    set ch1 = document.createElement("input")
        ch1.type = "Radio"
        ch1.name = "NetwConn"
        ch1.id = "NetwConn " & k
        ch1.value = k
        ch1.checked = "checked"

    MsgBox(ch1.outerHTML)
           'zeigt, dass weder name- noch checked-Attribut gesetzt werden

    Ich habe überhaupt keinen Plan warum sich die Radio-Buttons nicht auswählen lassen. :(

    Ohne name-Attribut steht jeder radio-Button für sich alleine und kann deshalb nicht ausgewählt werden.

    Nutze die Microsoft-eigene Methode document.createElement(sTag).

    <html>
    <head>
      <title>RadioCreateTest</title>
      <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
      <HTA:APPLICATION ID="RadioCreateTest"
        APPLICATIONNAME="RadioCreateTest"
        BORDER="thick"
        CAPTION="yes"
        SHOWINTASKBAR="yes"
        SINGLEINSTANCE="yes"
        SYSMENU="yes"
        WINDOWSTATE="normal"
      >
      <script language="vbscript">
    Sub Window_Onload

    For k = 1 to 3
    set ch1 = document.createElement("<input type='radio' name='NetwConn'>")
        ch1.id = "NetwConn " & k
        ch1.value = k
        set lb1 = document.createElement("label")
        lb1.htmlFor = "NetwConn " & k
        lb1.appendChild(document.createTextNode("Radio " & (k-1)))
        MyForm.appendChild(ch1)
        MyForm.appendChild(lb1)
        MyForm.appendChild(document.createElement("br"))
    Next

    End Sub

    </script>
    </head>
    <body>
     <form action="#" name = "MyForm" >

    </form>
    </body>
    </html>

    viele Grüße

    Axel

    1. <script language="vbscript">
      Sub Window_Onload

      For k = 1 to 3
      set ch1 = document.createElement("<input type='radio' name='NetwConn'>")
          ch1.id = "NetwConn " & k
          ch1.value = k
          set lb1 = document.createElement("label")
          lb1.htmlFor = "NetwConn " & k
          lb1.appendChild(document.createTextNode("Radio " & (k-1)))
          MyForm.appendChild(ch1)
          MyForm.appendChild(lb1)
          MyForm.appendChild(document.createElement("br"))
      Next

      End Sub

      Ah. Danke. Also das auswählen klappt soweit. Vorher hatte ich die Radio Buttons fest im HTML-Teil reingeschrieben. Dann konnte ich mit folgender Schleife checken, welcher von ihnen ausgewählt ist:

      For j = 1 To AdapterCount

      If NetwConn(j).Checked Then
      AdapterNr = j
      End If

      Next

      Diese funktioniert aber leider nicht mehr. :(
      Er erkennt das per VBScript erzeugte Objekt "NetwConn" nicht. Dies versteh ich aber nicht ganz? :(

      1. Hallo,

        Er erkennt das per VBScript erzeugte Objekt "NetwConn" nicht. Dies versteh ich aber nicht ganz? :(

        Das ging? Nicht etwa so:

        For j = 1 To AdapterCount

        If MyForm.NetwConn(j).Checked Then

        AdapterNr = j
        End If

        Next

        viele Grüße

        Axel

        1. Hallo,

          *argh*!

          Die Zählung beginnt bei 0, also:

          For j = 1 To AdapterCount

          If MyForm.NetwConn(j-1).Checked Then

          AdapterNr = j
          End If

          Next

          viele Grüße

          Axel

          1. Hallo,

            *argh*!

            Die Zählung beginnt bei 0, also:

            For j = 1 To AdapterCount

            If MyForm.NetwConn(j-1).Checked Then

            AdapterNr = j
            End If

            Next

            viele Grüße

            Axel

            Danke nochmal. So klappts. Allerdings bin ich bissl durcheinander. Eigentlich hab ich ihm beim Erstellen der RadioButtons gesagt, dass er bei k = 1 anfangen soll:

            For k = 1 To AdapterCount
            set ch1 = document.createElement("<input type='radio' name='NetwConn'>")
                ch1.id = "NetwConn"
                ch1.value = k
            .....

            Also müsste der "erste" Radiobutton den Wert 1 haben und nich null, demzufolge müsste also auch die Iteration ab 1 gehen?

            also

            For j = 1 To AdapterCount

            If MyForm.NetwConn(j).Checked Then
            AdapterNr = (j)
            End If

            Versteh ich grad nich ganz....

            Grüße
            P.

            1. Hallo,

              Allerdings bin ich bissl durcheinander. Eigentlich hab ich ihm beim Erstellen der RadioButtons gesagt, dass er bei k = 1 anfangen soll:
              Also müsste der "erste" Radiobutton den Wert 1 haben

              Ja, er hat und sendet den _Value_ 1.

              und nich null, demzufolge müsste also auch die Iteration ab 1 gehen?

              Nein, die NodeList (aka das Array) beginnt trotzdem mit dem Element Nr. 0, wie bei Arrays üblich.

              viele Grüße

              Axel