2017-09-01 5 views
0

Dans cet exemple:Comment récupérer une chaîne à partir d'un sous dans vbscript

TestSub.vbs

a = "String" 

TestSub a 

Sub TestSub(a) 

    MsgBox "Test " & a 

End Sub 

La fonction Sub fonctionne très bien et affiche le texte "test chaîne" dans le MsgBox

Mais dans cet exemple (embarqué dans une HTA)

TestSub2.VBS

Sub getdata 

    NameID = "name123" 

    ' NameID = 123 ' (This works) 

    strHTML0 = strHTML0 & _ 
    "<select>" & _ 
     "<option onclick='UpdateSelect("& NameID &")' language='vbscript'>" & _ 
      NameID & _ 
     "</option>" & _ 
    "</select>" 

    SelectBox.innerHTML = strHTML0 

End sub 

Sub UpdateSelect(NameID) 

    MsgBox "Test " & NameID 

End sub 

Le NameID est affiché dans la boîte de sélection, mais lorsque vous appelez le sous il n'apparaît pas dans le messagebox, cependant, si vous définissez NameID = 123 il affiche l'entier dans le messagebox

Pourquoi ne peut-il afficher que des entiers et comment afficher une chaîne?

.hta tout Posté le pastebin

+0

vous devez spécifier le '' onclick' sur le select' pas the 'option' – SearchAndResQ

+0

Cela n'a pas fonctionné, et je ne veux pas que l'événement' onclick' se déclenche chaque fois que je clique sur la selectbox –

Répondre

1

Vous Concaténation et doit délimiteur NameID valeur de cette façon:

"<option onclick='UpdateSelect("""& NameID &""")' language='vbscript'>" & _