2013-06-20 234 views
0

我正在努力使用HTML代碼來驗證外部js文件中Javascript提示符()的輸入。我知道調用Javascript函數進行驗證,並且我知道如何編寫函數,但是如何「監聽」HTML中的提示和後續輸入?Javascript Prompt()輸入驗證

提示是否必須在HTML文檔中以表單形式完成?

+0

你說的是'window.prompt'函數嗎? https://developer.mozilla.org/en-US/docs/Web/API/window.prompt。如果是,在打字時無法驗證輸入。您只能在用戶提交值後驗證值*。 –

+0

你不聽它,prompt()是同步的,並將其結果返回給關閉對話框時立即調用它的人。 – dandavis

+0

是的,window.prompt(「輸入你的名字」) – user2502053

回答

0

對不起,我不能等着......這裏是我在我的評論中提及上面的代碼。 jsFiddle live example here

這是一個完全有效的獨立示例。只需複製/粘貼到文件並運行即可。

請注意,您必須在代碼本身之前引用/加載jQuery和jQueryUI庫(在此完成代碼)。

老實說,對於網站來說,提示()對於這些日子來說是個壞主意。也許這更像你想做的事情。驗證(用戶輸入的內容)在對話框的close部分完成。

<html> 
    <head> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
     <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> 
     <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" /> 

     <script type="text/javascript"> 
      $(document).ready(function() { 

       $('#mybutt').click(function() { 
        $('#msg').dialog({ 
         autoOpen:true, 
         modal:true, 
         title: 'This is a question:', 
         buttons: { 
          Go: function() { 
           $(this).dialog('close'); 
          } 
         }, 
         close: function() { 
          var s = $('#sumpin').val(); 
          if (s.length<15) 
           alert('Please type more than 15 characters'); 
          else 
           alert('You typed: ' + s); 
         } 
        }); 
       }); 

      }); //END $(document).ready() 

     </script> 
    </head> 
<body> 

    <div id="msg" style="display:none"> 
     Type something here:<br /> 
     <input id="sumpin" type="text"> 
    </div> 
    <br /> 
    <input type="button" id="mybutt" value="Click Me"> 

</body> 
</html> 
4

prompt正在阻塞。無論輸入什麼內容,只有在確定按鈕被點擊(或按下輸入)後纔會返回。

var foo = prompt('bar', 'baz'); 
if (some_condition(foo)) { 
    // do something 
} else { 
    // do something else 
    // (which might be to recursively call the function this code 
    // is inside until an acceptable result is received) 
} 
+0

缺少一個括號在線2 :) – imulsion

+0

第1行關閉paren失蹤 – dandavis

+0

@ dandavis呃...不,他不是 – imulsion

0

提示將返回您在對話窗口中輸入的值。使用返回的值來做任何你想做的事情。像這樣:

var answer = prompt("<something>"); 
//stuff with answer 

fiddle