2013-06-20 164 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