【问题标题】:JavaScript prompt box: how to validate the cancel button (null)JavaScript 提示框:如何验证取消按钮(null)
【发布时间】:2015-01-05 09:42:13
【问题描述】:

我有一些 JavaScript 应该用作验证提示框输入的示例。

用户单击按钮,输入名称,JavaScript 验证输入并显示适当的消息。如果名称没问题,则表示这是一个好名称,如果您输入数字/符号,则表示输入无效(到目前为止一切都很好)。但是,当用户在提示框中单击“取消”时,消息显示“空”是个好名字。我试图抓住这个,但它似乎不起作用。当用户单击“取消”时,如何让它显示一条消息,说明您没有输入有效名称?

这里是它的 JS 小提琴:http://jsfiddle.net/TurgidWizard/jzzsqu06/

html:

<button onclick="Validation()">Click Me</button>
<p id="vresult"></p>

Javascript:

function Validation() {
    document.getElementById("vresult").innerHTML = "";
    PetName = prompt("Please enter your favourite pet's name:", "");
    var T = Test(PetName);
    if (T == false | T == "null") {
        document.getElementById("vresult").innerHTML = "You did not enter a valid name!";
    } else {
        document.getElementById("vresult").innerHTML = PetName + " is a lovely name, good choice!!";
    }

}

function Test(str) {

    return /^[a-zA-Z]+$/.test(str)

}

请注意我如何尝试使用“if (T == false | T == "null")”来捕获“null”,以便为无效消息做好准备。

【问题讨论】:

    标签: javascript validation null prompt


    【解决方案1】:

    你的语法在这里不好:

    if (T == false | T == "null")
    

    null 不应该是字符串,或者是 || 而不是 |

    您还想检查PetName 是否为null,而不是正则表达式的结果。 该行应如下所示:

    if (!T || !PetName)
    

    这是你的小提琴:http://jsfiddle.net/jzzsqu06/1/

    【讨论】:

      【解决方案2】:

      只需检查 str 是否为 null(而不是 "null"

      function Test(str) {
          return (str !== null) && /^[a-zA-Z]+$/.test(str);
      }
      

      然后简单检查

      if (T === false) {
      

      prompt会在OK或return被按下时返回输入的值,包括空字符串""null如果被按下。

      【讨论】:

        【解决方案3】:

        在你的 if 条件中加入这一行来处理取消选项:

        if (T != '' && T != null){ 
         document.getElementById("vresult").innerHTML = "You did not enter a valid name!";
        }
        

        【讨论】:

          猜你喜欢
          • 2011-10-21
          • 2015-04-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-20
          • 2018-02-19
          相关资源
          最近更新 更多