Radio-Buttons lassen sich nicht auswählen
PalinkatoR
- vb-script
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.
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
<script language="vbscript">
Sub Window_OnloadFor 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"))
NextEnd 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? :(
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 IfNext
viele Grüße
Axel
Hallo,
*argh*!
Die Zählung beginnt bei 0, also:
For j = 1 To AdapterCount
If MyForm.NetwConn(j-1).Checked Then
AdapterNr = j
End IfNext
viele Grüße
Axel
Hallo,
*argh*!
Die Zählung beginnt bei 0, also:
For j = 1 To AdapterCount
If MyForm.NetwConn(j-1).Checked Then
AdapterNr = j
End IfNext
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.
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