HTA:取消选中所有框时显示MsgBox

时间:2017-05-27 14:13:03

标签: html checkbox vbscript hta

我还是HTA的新手,我想在没有选中复选框的情况下添加警告,当没有选中复选框时,它会抑制当前的MsgBox,表示所有复选框都已处理。

当前的MsgBox将替换为objShell.Run行(robocopy)。

我知道我的代码可能有点基础,所以非常欢迎提高效率的建议。

<html>
<head>
<title>Sync Tool</title>
<HTA:APPLICATION
  APPLICATIONNAME="Sync Tool"
  ID="SyncTool"
  VERSION="1.0.0"
  BORDER="dialog"
  MAXIMIZEBUTTON="no"
  MINIMIZEBUTTON="no"
  SCROLL="no"
  SINGLEINSTANCE="yes"
  CONTEXTMENU="no"
  SELECTION="no"/>
</head>

<script language="VBScript">

Set objShell = CreateObject("Wscript.Shell")

Sub Window_OnLoad
    Dim width,height
    width=330
    height=310
    self.ResizeTo width,height
    self.MoveTo (screen.AvailWidth-width)/2,(screen.AvailHeight-height)/2
End Sub

Sub OnClickButtonSyncNow()

    ' Box A
    If BoxAA.checked Then
        MsgBox "BoxAA"
    Else
        'Do nothing
    End If

    If BoxAB.checked Then
        MsgBox "BoxAB"
    Else
        'Do nothing
    End If

    If BoxAC.checked Then
        MsgBox "BoxAC"
    Else
        'Do nothing
    End If

    If BoxAD.checked Then
        MsgBox "BoxAD"
    Else
        'Do nothing
    End If

    If BoxAE.checked Then
        MsgBox "BoxAE"
    Else
        'Do nothing
    End If

    ' Box B
    If BoxBA.checked Then
        MsgBox "BoxBA"
    Else
        'Do nothing
    End If

    If BoxBB.checked Then
        MsgBox "BoxBB"
    Else
        'Do nothing
    End If

    If BoxBC.checked Then
        MsgBox "BoxBC"
    Else
        'Do nothing
    End If

    If BoxBD.checked Then
        MsgBox "BoxBD"
    Else
        'Do nothing
    End If

    If BoxBE.checked Then
        MsgBox "BoxBE"
    Else
        'Do nothing
    End If

    MsgBox "All checkboxes are processed"

End Sub

Sub ExitTool()
    window.close()
End Sub
</script>

<body bgcolor="firebrick">

<style type="text/css">
.tg  {border-collapse:collapse;border-spacing:0;}
.tg th{font-family:Arial, sans-serif; font-size:14px; font-weight:normal; padding-top:0px ;padding-right:20px; padding-bottom:0px; padding-left:0px ;border-style:solid; border-width:0px; overflow:hidden; word-break:normal;}
.tg td{font-family:Arial, sans-serif; font-size:14px; padding-top:5px ;padding-right:10px; padding-bottom:0px; padding-left:0px ;border-style:solid; border-width:0px; overflow:hidden; word-break:normal;}
.tg .tg-header{color:#FFFB00; font-size:22px; font-weight:bold; font-family:Verdana, Geneva, sans-serif !important;}
.tg .tg-text{color:white; font-family:Verdana, Geneva, sans-serif !important; vertical-align:top}
.button {height:50px; width:136px; font-weight:bold; background-color:#555555; border: 2px solid #FFFB00; color:white; text-align:center; text-decoration:none; display:inline-block; font-size:16px;}
</style>
<table class="tg">
  <tr>
    <th class="tg-header">Box A</th>
    <th class="tg-header">Box B</th>
  </tr>
  <tr>
    <td class="tg-text"><input type="checkbox" name="AA">AA</td>
    <td class="tg-text"><input type="checkbox" name="BA">BA</td>
  </tr>
  <tr>
    <td class="tg-text"><input type="checkbox" name="AB">AB</td>
    <td class="tg-text"><input type="checkbox" name="BB">BB</td>
  </tr>
  <tr>
    <td class="tg-text"><input type="checkbox" name="AC">AC</td>
    <td class="tg-text"><input type="checkbox" name="BC">BC</td>
  </tr>
  <tr>
    <td class="tg-text"><input type="checkbox" name="AD">AD</td>
    <td class="tg-text"><input type="checkbox" name="BD">BD</td>
  </tr>
  <tr>
    <td class="tg-text"><input type="checkbox" name="AE">AE</td>
    <td class="tg-text"><input type="checkbox" name="BE">BE</td>
  </tr>
</table>
<br>
<input type="button" class="button" name="SyncNow" id="SyncNow" value="Sync Now" onclick="OnClickButtonSyncNow">
<input type="button" class="button" name="Exit" id="Exit" value="Exit" onclick="ExitTool">

</body>
</html>

2 个答案:

答案 0 :(得分:1)

使用标志(至少完成一个动作)和循环:​​

Sub OnClickButtonSyncNow()

    Dim bF : bF = False
    Dim c1, c2
    For Each c1 In Split("A B")
        For Each c2 In Split("A B C D")
            Dim n : n = c1 & c2
            Dim b : Set b = document.getElementById(n)
            If b.Checked Then
               MsgBox n
               bF = True
             End If
        Next
    Next
    If bF Then
       MsgBox "all done"
    Else
       MsgBox "nice try"
    End If

End Sub

答案 1 :(得分:0)

我目前的代码,感谢Ekkehard.Horner。 我们随时欢迎改进建议。

<html>
<head>
<title>Sync Tool</title>
<HTA:APPLICATION
  APPLICATIONNAME="Sync Tool"
  ID="SyncTool"
  VERSION="1.0.0"
  BORDER="dialog"
  MAXIMIZEBUTTON="no"
  MINIMIZEBUTTON="no"
  SCROLL="no"
  SINGLEINSTANCE="yes"
  CONTEXTMENU="no"
  SELECTION="no"/>
</head>

<script language="VBScript">

Set objShell = CreateObject("Wscript.Shell")

Sub Window_OnLoad
    Dim width,height
    width=330
    height=310
    self.ResizeTo width,height
    self.MoveTo (screen.AvailWidth-width)/2,(screen.AvailHeight-height)/2
End Sub

Sub OnClickButtonSyncNow()

    ' Box A
    If BoxAA.checked Then
        MsgBox "BoxAA"
    Else
        'Do nothing
    End If

    If BoxAB.checked Then
        MsgBox "BoxAB"
    Else
        'Do nothing
    End If

    If BoxAC.checked Then
        MsgBox "BoxAC"
    Else
        'Do nothing
    End If

    If BoxAD.checked Then
        MsgBox "BoxAD"
    Else
        'Do nothing
    End If

    If BoxAE.checked Then
        MsgBox "BoxAE"
    Else
        'Do nothing
    End If

    ' Box B
    If BoxBA.checked Then
        MsgBox "BoxBA"
    Else
        'Do nothing
    End If

    If BoxBB.checked Then
        MsgBox "BoxBB"
    Else
        'Do nothing
    End If

    If BoxBC.checked Then
        MsgBox "BoxBC"
    Else
        'Do nothing
    End If

    If BoxBD.checked Then
        MsgBox "BoxBD"
    Else
        'Do nothing
    End If

    If BoxBE.checked Then
        MsgBox "BoxBE"
    Else
        'Do nothing
    End If

    Dim bF : bF = False
    Dim c1
        For Each c1 In Split("A B C D E F G H I J")
            Dim n : n = c1
            Dim b : Set b = document.getElementById(n)
            If b.Checked Then
               bF = True
             End If
        Next
    If bF Then
       MsgBox "all done"
    Else
       MsgBox "nothing selected"
    End If

End Sub

Sub ExitTool()
    window.close()
End Sub
</script>

<body bgcolor="firebrick">

<style type="text/css">
.tg  {border-collapse:collapse;border-spacing:0;}
.tg th{font-family:Arial, sans-serif; font-size:14px; font-weight:normal; padding-top:0px ;padding-right:20px; padding-bottom:0px; padding-left:0px ;border-style:solid; border-width:0px; overflow:hidden; word-break:normal;}
.tg td{font-family:Arial, sans-serif; font-size:14px; padding-top:5px ;padding-right:10px; padding-bottom:0px; padding-left:0px ;border-style:solid; border-width:0px; overflow:hidden; word-break:normal;}
.tg .tg-header{color:#FFFB00; font-size:22px; font-weight:bold; font-family:Verdana, Geneva, sans-serif !important;}
.tg .tg-text{color:white; font-family:Verdana, Geneva, sans-serif !important; vertical-align:top}
.button {height:50px; width:136px; font-weight:bold; background-color:#555555; border: 2px solid #FFFB00; color:white; text-align:center; text-decoration:none; display:inline-block; font-size:16px;}
</style>
<table class="tg">
  <tr>
    <th class="tg-header">Box A</th>
    <th class="tg-header">Box B</th>
  </tr>
  <tr>
    <td class="tg-text"><input type="checkbox" name="BoxAA" id="A">AA</td>
    <td class="tg-text"><input type="checkbox" name="BoxBA" id="B">BA</td>
  </tr>
  <tr>
    <td class="tg-text"><input type="checkbox" name="BoxAB" id="C">AB</td>
    <td class="tg-text"><input type="checkbox" name="BoxBB" id="D">BB</td>
  </tr>
  <tr>
    <td class="tg-text"><input type="checkbox" name="BoxAC" id="E">AC</td>
    <td class="tg-text"><input type="checkbox" name="BoxBC" id="F">BC</td>
  </tr>
  <tr>
    <td class="tg-text"><input type="checkbox" name="BoxAD" id="G">AD</td>
    <td class="tg-text"><input type="checkbox" name="BoxBD" id="H">BD</td>
  </tr>
  <tr>
    <td class="tg-text"><input type="checkbox" name="BoxAE" id="I">AE</td>
    <td class="tg-text"><input type="checkbox" name="BoxBE" id="J">BE</td>
  </tr>
</table>
<br>
<input type="button" class="button" name="SyncNow" id="SyncNow" value="Sync Now" onclick="OnClickButtonSyncNow">
<input type="button" class="button" name="Exit" id="Exit" value="Exit" onclick="ExitTool">

</body>
</html>