window.prompt提示框点击取消后返回的是"",点击确定后返回的是用户输入内容。如果想实现如下效果怎么做:
1、当用户点击确认但是没有输入时,提示用户不能输入为空。
2、当用户点击取消时,直接return掉。因为如果不输入内容的话,点确认也是返回的"",跟点取消返回的内容相同,所以无法区分判断。
现在只能是在prompt提示框中加入了一个默认值,勉强能实现效果。请问还有没有其他好的方法能够解决此问题的?
求高手指点~~~!

解决方案 »

  1.   

    if (prompt("input", "") === null) {
        /* todo : cancel */
        return;
    }
      

  2.   


    <html>
     <head></head>
     <script>
       function setName(obj){
        var value = window.prompt("用户名:", "yourname");
        var username = document.getElementById("username");
        username.value = value;
       }
     </script>
     <body>
      <input type="text" id="username" readonly/>
      <input type="button" value="输入" onclick="setName(this)">
     </body>
    </html>这个lZ可以试试(这段代码不是我的..)
      

  3.   

    ===更严格的相等比较,包括类型0 == false // true
    0 === false // false"" == 0 // true
    "" === 0 // false
      

  4.   


    <html>
     <head></head>
     <script>
       function setName(obj){
        var value = window.prompt("用户名:", "yourname");
        var username = document.getElementById("username");
    if(!value){username.value="";}
    else   username.value = value;
     }
     </script>
     <body>
      <input type="text" id="username" readonly/>
      <input type="button" value="输入" onclick="setName(this)">
     </body>
    </html>
    楼主试试这个
      

  5.   

    http://jsfiddle.net/ZCeWK/
    if  (prompt("input", "") == null) {
        alert('cancel');
    }ie6下也正确,你怎么测试的?
      

  6.   

              function Button1_onclick() {
                if (window.prompt("your name", "") =="")
                   {
                    window.alert("不能为空");
                    }
                    else
                     {
                    return;
                     }
                }    <input id="Button1" type="button" value="button"  onclick="return Button1_onclick()" />
      

  7.   

    使用jquery.ui插件的 .dialog()功能很容易实现你说的这个东西。
      

  8.   

    window.prompt() 这个方法点取消的话,返回的是null,所以可以根据其返回值来判断接下来的操作.
    你可以用firebug来跟踪一下.