2019年3月10日 星期日

(11)prompt() 函式

尊姓大名?
你有沒有在進入網站時被詢問過「尊姓大名」過呢?我想你應該常常遇過才對!這個可以讓瀏覽者輸入資料的視窗稱之為『輸入視窗(inputbox)』,它是由JavaScript所提供的一個輸入函式:

prompt() 函式
prompt()函式與confirm()函式相同,都會先顯示一個視窗,但不同的是prompt()函式所顯示的視窗中含有一個輸入的欄位,呼叫prompt()函式的基本格式如下:
prompt()函式使用格式
  1. X = prompt(提示參數)

參數的內容都將會顯示在蹦現的訊息視窗中而成為所謂的『提示訊息』,同時,在輸入的欄位內會有一段預設的輸入資料「undefined」,以下是輸入視窗的組成說明:
  • 預設提示文字:這是當我們呼叫prompt()函式時JavaScript自動產生在輸入視窗內的提示文字,我們不能加以更改。
  • 提示訊息內容:我們呼叫函式所指定的提示參數內容。
  • 輸入欄位:讓瀏覽者輸入相關資料的欄位。
  • 預設輸入內容:這是當我們呼叫prompt()函式時JavaScript自動產生在輸入欄位內的資料內容。
  • 輸入確認按鈕:瀏覽者在輸入欄位輸入資料後,若按下確定按鈕則可將輸入欄位內的資料傳回程式使用。
  • 輸入取消按鈕:如果瀏欄者按下取消按鈕,則回傳給程式一個空值(null)。

預設輸入內容,雖然我們呼叫prompt()函式時,JavaScript會自動在輸入欄位內產生預設的資料內容「undefined」,但是,這個預設的資料內容我們也可以自己指定,其格式如下:
prompt()函式使用格式
  1. X = prompt(提示參數,預設輸入內容)
如果我們呼叫的敘述是:
  1. x = prompt(“請輸入年齡”,20)
則這些參數與輸入視窗的關係如下圖:

實做學習
使用prompt()函式,讓網頁載入時蹦現一個輸入視窗,讓瀏覽者輸入姓名,並利用瀏覽者所輸入的資料蹦現一個訊息視窗向瀏覽者打招呼。
  1. <HTML>
  2. <HEAD>
  3. <TITLE>prompt()函式</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <SCRIPT Language="JavaScript">
  7. //彈出輸入視窗
  8. x=prompt("請問尊姓大名?","無名氏");
  9. //蹦現問候視窗
  10. alert(x+"你好");
  11. </SCRIPT> 
  12. </BODY>
  13. </HTML>
上圖是理想的執行結果,瀏覽者在輸入欄位中輸入自己的姓名並且按下確定按鈕,萬一瀏覽者不想填入資料而直接按下取消按鈕,或是輸入名字卻按下取消按鈕呢?此時將會出現下圖的結果:

為何為這樣呢?因為瀏欄者按下取消按鈕,則回傳給程式一個空值(null),此時JavaScript就自作聰明的把回傳值資料設定為『null』,因此在程式碼第8行,我們呼叫alert()函式所出現的訊息內容『x+”你好”』就變成了『”null”+”你好”』,所以在訊息視窗中的內容就成為『null你好』!該如何解決這個錯誤呢?很簡單,我們只要加上一個if判斷敘述來判斷就行了,我們先判斷輸入視窗中傳回是否有傳回值,如果有資料回傳我們再顯示執行蹦出訊息的視窗。
  1. <HTML>
  2. <HEAD>
  3. <TITLE>prompt()函式</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <SCRIPT Language="JavaScript">
  7. //彈出輸入視窗
  8. x=prompt("請問尊姓大名?","無名氏");
  9. if(x) //判斷是否有回傳資料
  10. {
  11. //蹦現問候視窗
  12. alert(x+"你好");
  13. }
  14. </SCRIPT> 
  15. </BODY>
  16. </HTML>

沒有留言:

張貼留言