2016-11-26 63 views
0

我的代碼部分工作。該列表被禁用,但不能捕捉到我已選擇「product1」,然後啓用列表。任何其他選擇應該完全禁用列表。用ID產品列表。所以我想這是我的語法選擇選項的東西,不知道如果這是寫它的正確方法。如果選擇了選項,禁用列表

的VBScript

'Disables or enables list based on selection 
Function enabler() 
    For Each opt In document.GetElementByID("customer").Options 
     If opt.Selected = "product1" Then 
      document.GetElementByID("product").Disabled = False 
     Else 
      document.GetElementByID("product").Disabled = True 
     End If 
    Next 
End Function 

HTA

... 
<select size="5" id="product" name="ListboxUserRole" onChange="SaveListboxUserRoleValue"> 
    <option value="1" selected="selected">product1</option> 
    <option value="2">product2</option> 
    <option value="3">product3</option> 
... 
<select size="5" id="customer" name="ListboxCustomer" onChange="SaveListboxCustomerValue" value="1"> 
    <option value="1" selected="selected">customer1</option> 
    <option value="2">customer2</option> 
    <option value="3">customer3</option> 
    <option value="4">customer4</option> 
... 
+0

你能和你的全HTA代碼更新? –

+0

它非常大,但我呼籲身體負荷的功能。 – Avean

+0

所以,當你從'customer'列表中選擇'product1'時,你想禁用整個'product'列表,對嗎? –

回答

0

如果我得到它的權利,你需要啓用customerproduct1product選擇,選擇選擇,並禁用如有其它。

所有首先,product選擇改變事件鏈接到SaveListboxCustomerValue()customer選擇禁用應在SaveListboxCustomerValue()內處理,用<body>替換<body onload="enabler()">

IMO更好地返工算法使用product選擇對象的selectedIndex特性,enabler()沒有必要再。刪除enabler(),並對其進行更改SaveListboxCustomerValue()

Sub SaveListboxCustomerValue() 

    ' enable customer if the first item in product selected 
    customer.disabled = product.selectedIndex <> 0 

    ' the rest part of the code 

End Sub 

否則,如果你想保持enabler(),然後閱讀Option Object Properties。您目前總是返回False的條件,因爲布爾值永遠不會等於字符串"product1"。該代碼應該是這樣的:

Sub enabler() 

    Dim opt 
    Dim match 

    For Each opt In product.options 
     match = opt.selected And opt.label = "product1" 
     If match Then Exit For 
    Next 
    customer.disabled = Not match 

End Sub 

enabler()應該customer變化被調用,添加調用它:

Sub SaveListboxCustomerValue() 

    enabler() 

    ' the rest part of the code 

End Sub 
+0

無論如何仍然禁用列表。選中的產品1仍然被禁用。 – Avean

+0

@Avean我添加了替代解決方案。 – omegastripes

+0

真的很不錯:)這個伎倆。但是如果我再次改回product1,它不會再次啓用列表。現在,product1選項將使列表處於活動狀態,其他所有選項都將停用。都好。但是,如果我再次返回到product1,該列表仍處於停用狀態。有小費嗎? – Avean

相關問題