ASP.NET 網頁製作教本 – 從基本語法學起 第 6 章 Server 控制元件與輸入表單
6-1 文字方塊(TextBox)
TextBox 常用屬性總覽(1) TextMode 屬性 :
TextBox 常用屬性總覽(2) Size 屬性:用來設定單行文字方塊及密碼方塊的寬度 。 MaxLength 屬性 :用來設定單行文字方塊及密碼方塊的可輸入資料長度。 Rows、Columns 屬性 :多行文字方塊的列數與行數,也就是決定多行文字方塊的大小。 Text 屬性:用來讀取或設定文字方塊的內容。
密碼欄位 在習慣上,輸入密碼時,其輸入之字元要以‧(或 *)來顯示,以避免密碼被偷窺,想要提供這種密碼輸入欄位,需將 TextBox 的 TextMode 屬性設定成 Password,如下: <asp:TextBox runat="server" TextMode="Password" …/>
[密碼欄位] 實例 -- (1) 寫一個讓上網者輸入帳號及密碼的網頁,然後利用另一個網頁顯示「帳號, 歡迎您!」。
[密碼欄位] 實例 -- (2) 安插兩個 TextBox 所使用的標示如下: 帳號:<asp:TextBox runat="server" id="Account" /><P> 密碼:<asp:TextBox runat="server" TextMode="Password" id="Password" /><P>
[密碼欄位] 實例 -- (3) 按下「登入」鈕時,將網頁切換到 Pass02.aspx 應使用 Server.Transfer,不是 Response.Redirect,這樣子可避免密碼被顯示在瀏覽器的網址欄: URL = "Pass02.aspx" & _ "?Account=" & Server.URLEncode(Account.Text) & _ "&Password=" & Server.URLEncode(Password.Text) Server.Transfer( URL )
[密碼欄位] 實例 -- (4) Pass01.aspx Part I <HTML> <BODY BgColor="#FFFFFF"> <H3>請登入「帳號」及「密碼」<HR></H3> <Form runat="server"> 帳號:<asp:TextBox runat="server" id="Account" /><P> 密碼:<asp:TextBox runat="server" TextMode="Password" id="Password" /><P> <asp:Button runat="server" Text="登入" OnClick="Button_Click" /> </Form> </BODY> </HTML>
[密碼欄位] 實例 -- (5) Pass01.aspx Part II <script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Dim URL URL = "Pass02.aspx" & _ "?Account=" & Server.URLEncode(Account.Text) & _ "&Password=" & Server.URLEncode(Password.Text) Server.Transfer( URL ) End Sub </script>
[密碼欄位] 實例 -- (6) Pass02.aspx <HTML> <BODY BgColor="#FFFFFF"> <H3><%=Request("Account")%> 歡迎您!<HR></H3> </BODY> </HTML>
多行文字的輸入(1) 想要讓上網者輸入多行文字,在安插 TextBox 時,需將 TextMode 設定成 MultiLine,此外設定 Rows 及 Colums 可決定其大小,例如: <asp:TextBox runat="server" TextMode="MultiLine" Rows=4 Columns=50 id="Text1" />
多行文字的輸入(2) 由於上網者可能在多行文字方塊中輸入超過2KB 的資料,因此,若資料須傳遞給另一個網頁,應使用 Server.Transfer,以免發生錯誤。 最好使用 <pre> 標示來顯示輸入的資料,以 <pre> 顯示的資料稱為「格式化」資料,其特色是所有資料都會原原本本地被顯示出來,不像其他格式,可能會將某些特殊字元視為白字,舉例來說,可以在 <pre> 格式中跳行的跳行字元,在一般格式中並不具備跳行的功用,只是個白字。
多行文字的輸入 -- 實例 (1) 完成以下兩個網頁。
多行文字的輸入 -- 實例 (2) Multi01.aspx Part I <HTML> <BODY BgColor="#FFFFFF"> <H3>可輸入多行文字的文字方塊<HR></H3> <Form runat="server"> <asp:TextBox runat="server" TextMode="MultiLine" id="Memo" Rows=8 Columns=60 /><P> <asp:Button runat="server" Text="輸入" OnClick="Button_Click" /> </Form> </BODY> </HTML>
多行文字的輸入 -- 實例 (3) Multi01.aspx Part II <script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Dim URL URL = "Multi02.aspx" & _ "?Memo=" & Server.URLEncode(Memo.Text) Server.Transfer( URL ) End Sub </script>
多行文字的輸入 -- 實例 (4) Multi02.aspx <HTML> <BODY BgColor="#FFFFFF"> <H3>將多行文字方塊的文字顯示出來<HR></H3> <pre><%=Request("Memo")%></pre> <HR> </BODY> </HTML>
多行文字的輸入 -- 實例 (5) TextBox 的安插:安插 TextBox 時,需特 別設定的屬性有: 結果可以產生一個 8×60 的文字輸入方塊。 TextMode="MultiLine" Rows=8 Columns=60
多行文字的輸入 -- 實例 (6) 資料的傳遞:因為 TextBox 可能輸入超過 2KB 的資料,所以要使用 Server.Transfer 傳遞資料: Server.Transfer( URL )
多行文字的輸入 -- 實例 (7) 資料的顯示:要使用 <pre> 格式化的方式來顯示資料,如下: <pre><%=Request("Memo")%></pre>
多行文字的輸入 -- 實例 (8) 如果不使用 <pre> 格式來顯示資料,會出現以下結果:
設定文字方塊的寬度 及資料長度(1) Size 屬性用來設定文字方塊的寬度,例如: <asp:TextBox runat="server" Size=20 id="Text1" /><p> <asp:TextBox runat="server" Size=40 id="Text2" /><p>
設定文字方塊的寬度 及資料長度(2) MaxLength 可用來設定可輸入資料的最大長度,例如: <asp:TextBox runat="server" MaxLength=6 id="Text1" />
TextBox 的應用實例: 訪客留言板 簡易的訪客留言板,假設我們要求留言者輸入的資料有姓名、Email、及留言三個欄位,則表單的設計如下:
訪客留言板 (1) 文字方塊靠左對齊:想想,「姓名:」與「Email:」的長度並不相等,如何讓第一個文字方塊與第二個文字方塊靠左對齊呢?一般設定的結果如下,並不是很整齊:
訪客留言板 (2) 「留言:」欄位與文字輸入區靠上對齊:一般設定的結果是靠下對齊,例如:
訪客留言板 (3) 要完成以上表單的設計須藉助表格,如下圖:
訪客留言板 (4) 用虛線來表示 <Table> 所構成的表格,設計時有幾個重點: 表格框線的寬度須設定為 0,也就是說 <Table> 標示的 Border 屬性值須設定成 0。 包含「留言:」這一列的「垂直對齊」要設定成靠上,也就是說這一列 <TR> 的 Valign 屬性值要設定成 Top。
訪客留言板 (5) gform.aspx Part I <HTML> <BODY BgColor="#FFFFFF"> <Form runat="server"> <Table Border=0> <TR> <TD>姓名:</TD> <TD><asp:TextBox runat="server" Size="20" id="Name" /></TD> </TR> <TD>Email:</TD> <TD><asp:TextBox runat="server" Size="60" id="Email" /></TD> </HTML>
訪客留言板 (6) gform.aspx Part II <TR Valign=Top> <TD>留言:</TD> <TD><asp:TextBox runat="server" TextMode="MultiLine" id="Memo" Rows="6" Cols="60" /></TD> </TR> </Table> <asp:Button runat="server" Text="傳送" /> </Form> </BODY>
訪客留言板 (7) gform.aspx Part III <script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Dim URL URL = "gbook.aspx" & _ "?Name=" & Server.URLEncode(Name.Text) & _ "&Email=" & Server.URLEncode(Email.Text) & _ "&Memo=" & Server.URLEncode(Memo.Text) Server.Transfer( URL ) End Sub </script>
訪客留言板 -- 資料的顯示 (1)
訪客留言板 -- 資料的顯示 (2) gbook.aspx <HTML> <BODY BgColor="#FFFFFF"> <TABLE Width="100%" Border=0> <TR> <TD>留言者:<%=Request("Name")%></TD> <TD>Email:<%=Request("Email")%></TD> </TR> <TR BgColor=Yellow> <TD ColSpan=2><pre><%=Request("Memo")%></pre></TD> </TABLE> </BODY> </HTML>
6-2 下拉式選單(ListBox)
ListBox 的安插 City00.aspx
ListBox 的安插 – 設定下拉式選單的高度 <asp:ListBox runat="server" id="City" Rows=4> <asp:ListItem>台北市</asp:ListItem> <asp:ListItem>台中市</asp:ListItem> <asp:ListItem>台南市</asp:ListItem> <asp:ListItem>高雄市</asp:ListItem> </asp:ListBox>
可以複選的 ListBox 若要讓 ListBox 變成複選的,須將SelectionMode 屬性設定為 “Multiple”(註:選取時須先按住 Ctrl 或 Shift 鍵),例如: <asp:ListBox runat="server" id="City" SelectionMode="Multiple"> <asp:ListItem>台北市</asp:ListItem> <asp:ListItem>台中市</asp:ListItem> <asp:ListItem>台南市</asp:ListItem> <asp:ListItem>高雄市</asp:ListItem> </asp:ListBox>
讀取上網者選擇的選項 – 只能單選的 ListBox 使用 ListBox_id.SelectedItem.Text 讀取,假設下面 ListBox 的 id 為 “City”、被上網者選取的選項為 “台中市”,則 City.SelectedItem.Text 將等於 "台中市"。
讀取上網者選擇的選項 – 可以複選的 ListBox 使用以下迴圈讀取選項: id.Items.Count: 表示 ListBox 之中選項的數目。 id.Items(I).Selected: 表示第 I 項是否被選取,若被選取,則為 True,否則為 False。 id.Items(I).Text: 表示第 I 項的文字內容。 For I = 0 To id.Items.Count - 1 If id.Items(I).Selected Then ' 利用 id.Items(I).Text 讀取選項 End If Next
可以複選的 ListBox 實例 -- (1) 在上網者選取選項之後(註:可以複選),將被選取之選項條列出來。
可以複選的 ListBox 實例 -- (2) 當「選擇」鈕被按下時,所啟動執行的 程式: Msg.Text = "您想居住的城市有:<UL>" For I = 0 To City.Items.Count - 1 If City.Items(I).Selected Then Msg.Text &= "<LI>" & City.Items(I).Text & "</LI>" End If Next Msg.Text &= "</UL>"
可以複選的 ListBox 實例 -- (3) 以上程式將逐一列出 City 這個 ListBox 之中所有被選取的選項,然後串成以下格式: <UL>您想居住的城市有: <LI>被選取的選項一</LI> <LI>被選取的選項二</LI> … </UL>
可以複選的 ListBox 實例 -- (4) City01.aspx Part I <HTML> <BODY BgColor="#FFFFFF"> <H2>選擇您想居住的城市 -- 可以複選<HR></H2> <Form runat="server"> <asp:ListBox runat="server" id="City" SelectionMode="Multiple" Rows=4> <asp:ListItem>台北市</asp:ListItem> <asp:ListItem>台中市</asp:ListItem> <asp:ListItem>台南市</asp:ListItem> <asp:ListItem>高雄市</asp:ListItem> </asp:ListBox><p> <asp:Button runat="server" Text="選擇" OnClick="Button_Click"/><p> <HR><p> <asp:Label runat="server" id="Msg" /> </Form> </BODY> </HTML>
可以複選的 ListBox 實例 -- (5) City01.aspx Part II <script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Dim I Msg.Text = "您想居住的城市有:<UL>" For I = 0 To City.Items.Count - 1 If City.Items(I).Selected Then Msg.Text &= "<LI>" & City.Items(I).Text & "</LI>" End If Next Msg.Text &= "</UL>" End Sub </script>
練習 – (1) 請完成以下的個人基本資料輸入表單:(其中「性別」欄位的選項有「男、女、其他」、「血型」欄位的選項有「A、B、O、AB、其他」、「已婚」欄位的選項有「未婚、已婚」、「興趣」欄位的選項有「運動、電影、閱讀、音樂、看海、歌唱」且為多選)
練習 – (2)
練習 – (3) 同時也請完成處理此一表單的網頁,將所輸入的資料顯示成:
6-3 核取方塊(CheckBox)
CheckBox 與可複選的 ListBox
安插 CheckBox (1) 安插 CheckBox 時,關鍵性的屬性除了runat 及id之外,還有: Text(文字):CheckBox 所顯示的文字內容。 Checked(最初狀態):若設定為 “True”,則此一 CheckBox 一開始會以核取(打ˇ)狀態來顯示,若設定為 "False" 或省略此一屬性,則以未核取的狀態來顯示。
安插 CheckBox (2) 實際的例子: <asp:CheckBox runat="server" id="City1" Text="台北市" Checked="True" /><br> <asp:CheckBox runat="server" id="City2" Text="台中市" /><br> <asp:CheckBox runat="server" id="City3" Text="台南市" /><br> <asp:CheckBox runat="server" id="City4" Text="高雄市" />
安插 CheckBox (3) 安插多個CheckBox時,請注意不同 CheckBox 須設定不同的 id,例如上面這 四個 CheckBox 就分別被設定 City1, City2, City3, City4 四個不同的名字。
讀取 CheckBox 的狀態及文字(1) 想要讀取 CheckBox 的狀態及文字,分別使用其 Checked 及 Text 屬性,使用例如下: Msg.Text = "您想居住的城市有:<UL>" If City1.Checked Then Msg.Text &= "<LI>" & City1.Text & "</LI>" If City2.Checked Then Msg.Text &= "<LI>" & City2.Text & "</LI>" If City3.Checked Then Msg.Text &= "<LI>" & City3.Text & "</LI>" If City4.Checked Then Msg.Text &= "<LI>" & City4.Text & "</LI>" Msg.Text &= "</UL>"
讀取 CheckBox 的狀態及文字(2) 完整的實例如 City02.aspx:
讀取 CheckBox 的狀態及文字(3) City02.aspx: Part I <HTML> <BODY BgColor="#FFFFFF"> <H2>選擇您想居住的城市<HR></H2> <Form runat="server"> <asp:CheckBox runat="server" id="City1" Text="台北市" /><br> <asp:CheckBox runat="server" id="City2" Text="台中市" /><br> <asp:CheckBox runat="server" id="City3" Text="台南市" /><br> <asp:CheckBox runat="server" id="City4" Text="高雄市" /> <p> <asp:Button runat="server" Text="選擇" OnClick="Button_Click"/><p> <HR><p> <asp:Label runat="server" id="Msg" /> </Form> </BODY> </HTML>
讀取 CheckBox 的狀態及文字(4) City02.aspx Part II: <script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Msg.Text = "您想居住的城市有:<UL>" If City1.Checked Then Msg.Text &= "<LI>" & City1.Text & "</LI>" If City2.Checked Then Msg.Text &= "<LI>" & City2.Text & "</LI>" If City3.Checked Then Msg.Text &= "<LI>" & City3.Text & "</LI>" If City4.Checked Then Msg.Text &= "<LI>" & City4.Text & "</LI>" Msg.Text &= "</UL>" End Sub </script>
CheckBoxList(核取方塊清單)(1) 除了 CheckBox,ASP.NET 還提供另一個類似 ListBox 的控制元件 CheckBoxList
CheckBoxList(核取方塊清單)(2) ListBox 的標示為: CheckBoxList 的標示為: <asp:ListBox runat="server" id="City" SelectionMode="Multiple"> <asp:ListItem>台北市</asp:ListItem> <asp:ListItem>台中市</asp:ListItem> <asp:ListItem>台南市</asp:ListItem> <asp:ListItem>高雄市</asp:ListItem> </asp:ListBox> <asp:CheckBoxList runat="server" id="City"> <asp:ListItem>台北市</asp:ListItem> <asp:ListItem>台中市</asp:ListItem> <asp:ListItem>台南市</asp:ListItem> <asp:ListItem>高雄市</asp:ListItem> </asp:CheckBoxList>
CheckBoxList(核取方塊清單)(3)
CheckBoxList(核取方塊清單)(4) 所需修改的部分只有以下兩行 ListBox 的標示: 分別改成: <asp:ListBox runat="server" id="City" SelectionMode="Multiple" Rows=4> </asp:ListBox><p> <asp:CheckBoxList runat="server" id="City"> </asp:CheckBoxList><p>
核取方塊的排列方式(1)
核取方塊的排列方式(2) 若要將選項的排列方式設定成上圖(b), 所需設定的屬性有: 如果要將排列方式設定成上圖(c),則所 需設定的屬性有: RepeatDirection="Vertical" RepeatColumns=2 RepeatDirection="Horizontal" RepeatColumns=3
練習 將 p.250 練習中的「興趣」欄位由 ListBox 改成 CheckBox 或 CheckBoxList,如下:
圖形核取方塊 (1)
圖形核取方塊 (2) CheckBoxList 並沒有圖形類的屬性,不過我們可以將 CheckBoxList 的選項設定成圖形標示(<Img>),而製作出圖形核取方塊。以上圖為例,6 個圖檔為 g01.gif~g06.gif,如果使用 CheckBoxList 完成此一佈置,則所撰寫的標示如下:
圖形核取方塊 (3) <asp:CheckBoxList runat="server" id="Office" RepeatDirection="Horizontal" RepeatColumns="3"> <asp:ListItem><Img Src="g01.gif" align="middle"></asp:ListItem> <asp:ListItem><Img Src="g02.gif" align="middle"></asp:ListItem> <asp:ListItem><Img Src="g03.gif" align="middle"></asp:ListItem> <asp:ListItem><Img Src="g04.gif" align="middle"></asp:ListItem> <asp:ListItem><Img Src="g05.gif" align="middle"></asp:ListItem> <asp:ListItem><Img Src="g06.gif" align="middle"></asp:ListItem> </asp:CheckBoxList>
利用 Value 屬性隱含文字 雖然可以輕易地佈置圖形的核取方塊,但當程式讀取選項的內容時,所讀取的也是圖形標示 <Img …>,不是單純的文字。 舉例來說,在選取 (g01.gif)這個圖形選項之後,讀取到的內容為 <Img Src=“g01.gif” align=“middle”>,如果說我們希望讀取的內容為 “椅子”,那麼就必須利用到 Value 屬性。
實例 寫一含有圖形核取方塊的網頁供上網者選取資料,選取資料之後,以文字來顯示上網者所選取的內容,如下圖。
GCheck.aspx (Part I) <Html> <Body BgColor="White"> <Form runat="server"> <asp:CheckBoxList runat="server" id="Office" RepeatDirection="Horizontal" RepeatColumns="3"> <asp:ListItem Value="椅子"> <Img Src="g01.gif" align="middle"></asp:ListItem> <asp:ListItem Value="活動櫃"> <Img Src="g02.gif" align="middle"></asp:ListItem> <asp:ListItem Value="螢幕"> <Img Src="g03.gif" align="middle"></asp:ListItem> <asp:ListItem Value="計算機">
GCheck.aspx (Part II) <Img Src="g04.gif" align="middle"></asp:ListItem> <asp:ListItem Value="電話"> <Img Src="g05.gif" align="middle"></asp:ListItem> <asp:ListItem Value="釘書機"> <Img Src="g06.gif" align="middle"></asp:ListItem> </asp:CheckBoxList><p> <asp:Button runat="server" Text="選擇" OnClick="Button_Click" /><p> <HR><p> <asp:Label runat="server" id="Msg" /> </Form> </Body> </Html>
GCheck.aspx (Part III) <script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Dim I Msg.Text = "您選擇了:<UL>" For I = 0 To Office.Items.Count - 1 If Office.Items(I).Selected Then Msg.Text &= "<LI>" & Office.Items(I).Value & "</LI>" End If Next Msg.Text &= "</UL>" End Sub </script>
6-4 選擇鈕(RadioButton)
選擇鈕(RadioButton) 選擇鈕有兩種控制元件 -- RadioButton及RadioButtonList。
使用 RadioButtonList (1) <Asp:RadioButtonList runat="server" id="blood" RepeatDirection="Horizontal" RepeatColumns="4"> <asp:ListItem>A</asp:ListItem> <asp:ListItem>B</asp:ListItem> <asp:ListItem>O</asp:ListItem> <asp:ListItem>AB</asp:ListItem> </asp:RadioButtonList> 出現在 RadioButtonList 之中的選項只能單選,而出現在 CheckBoxList 之中的選項則可以複選。
使用 RadioButtonList (2) 選擇鈕設定為預設的選項,只要在該選項的 <asp:ListItem> 標示中增加 Selected 屬性即可,例如: <Asp:RadioButtonList runat="server" id="blood" RepeatDirection="Horizontal" RepeatColumns="4"> <asp:ListItem Selected>A</asp:ListItem> <asp:ListItem>B</asp:ListItem> <asp:ListItem>O</asp:ListItem> <asp:ListItem>AB</asp:ListItem> </asp:RadioButtonList>
使用 RadioButtonList (3) 欲讀取上網者選擇哪一個選項,方法如下: id.SelectedItem.Text
實例 完成以下網頁:
Radio01.aspx (Part I) <HTML> <BODY BGCOLOR=#FFFFFF> <H3>選擇鈕展示程式<HR></H3> <Form runat="server"> <Table Border=0> <tr> <td>性別:</td> <td> <asp:RadioButtonList runat="server" id="sex" RepeatDirection="Horizontal" RepeatColumns="2"> <asp:ListItem Selected>男</asp:ListItem> <asp:ListItem>女</asp:ListItem> </asp:RadioButtonList> </td> </tr></Table>
Radio01.aspx (Part II) <Table Border=0> <tr> <td>血型:</td> <td> <asp:RadioButtonList runat="server" id="blood" RepeatDirection="Horizontal" RepeatColumns="4"> <asp:ListItem Selected>A</asp:ListItem> <asp:ListItem>B</asp:ListItem> <asp:ListItem>O</asp:ListItem> <asp:ListItem>AB</asp:ListItem> </asp:RadioButtonList> </td> </tr></Table>
Radio01.aspx (Part III) <p><asp:Button runat="server" Text="輸入" OnClick="Button_Click" /> <HR> <p><asp:Label runat="server" id="Msg" /> </Form> </BODY> </HTML> <script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Msg.Text = "您是" & sex.SelectedItem.Text & "性, " Msg.Text &= "血型: " & blood.SelectedItem.Text & "型" End Sub </script>
練習 將 p.257 練習中的「性別」、「血型」、及「已婚」欄位由 ListBox 改成RadioButtonList,如下:
使用 RadioButton (1) 對 RadioButtonList 來說,一個控制元件可以含有多個選項,但是對 RadioButton來說,一個控制元件卻只能含有一個選項。
使用 RadioButton(2) 若使用 RadioButton 來佈置以上的「血型」欄位,所撰寫的標示如下: <asp:RadioButton runat="server" id="blood1" Text="A" GroupName="blood" /> <asp:RadioButton runat="server" id="blood2" Text="B" GroupName="blood" /> <asp:RadioButton runat="server" id="blood3" Text="O" GroupName="blood" /> <asp:RadioButton runat="server" id="blood4" Text="AB" GroupName="blood" />
Radio02.aspx (Part I) <HTML> <BODY BGCOLOR=#FFFFFF> <H3>選擇鈕展示程式<HR></H3> <Form runat="server"> 性別: <asp:RadioButton runat="server" id="sex1" Text="男" GroupName="sex" /> <asp:RadioButton runat="server" id="sex2" Text="女" GroupName="sex" /> <p> 血型: <asp:RadioButton runat="server" id="blood1" Text="A" GroupName="blood" /> <asp:RadioButton runat="server" id="blood2" Text="B" GroupName="blood" />
Radio02.aspx (Part II) <asp:RadioButton runat="server" id="blood3" Text="O" GroupName="blood" /> <asp:RadioButton runat="server" id="blood4" Text="AB" GroupName="blood" /> <p> <asp:Button runat="server" Text="輸入" OnClick="Button_Click" /> <HR> <p><asp:Label runat="server" id="Msg" /> </Form> </BODY> </HTML>
Radio02.aspx (Part III) <script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Dim Sex, Blood If sex1.Checked Then Sex = sex1.Text If sex2.Checked Then Sex = sex2.Text If blood1.Checked Then Blood = blood1.Text If blood2.Checked Then Blood = blood2.Text If blood3.Checked Then Blood = blood3.Text If blood4.Checked Then Blood = blood4.Text Msg.Text = "您是" & Sex & "性, " Msg.Text &= "血型: " & Blood & "型" End Sub </script>