JavaScript提示框:如何验证取消按钮(null)

JavaScript prompt box: how to validate the cancel button (null)

我有一些 JavaScript 可以作为验证提示框输入的示例。

用户单击按钮,输入名称,JavaScript 验证输入并显示适当的消息。如果名字没问题,它说这是一个好名字,如果你输入 number/symbol 它说输入无效(到目前为止一切正常)。但是,当用户单击提示框上的 "cancel" 时,消息显示 "null" is a good name。我试图抓住这个,但它似乎不起作用。当用户单击 "cancel"?

时,如何让它显示一条消息说您没有输入有效名称

这是它的 JS fiddle: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" 准备好接收无效消息的。

只需检查 str 是否为 null(相对于 "null"

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

然后只需检查

if (T === false) {
如果按下 OK 或 return,

prompt 将 return 输入值,包括空字符串 "",如果按下 Cancel,则 null

将此行合并到您的 if 条件中处理取消选项:

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

你的语法有问题:

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

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

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

if (!T || !PetName)

这是你的fiddle:http://jsfiddle.net/jzzsqu06/1/