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

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

本文关键字:提示 取消 按钮 null 验证 何验证 JavaScript      更新时间:2023-09-26

我有一些JavaScript,应该作为如何验证提示框输入的示例。

用户单击按钮,输入名称,JavaScript 验证输入并显示相应的消息。如果名称很好,它说它是一个好名字,如果你输入一个数字/符号,它说输入无效(到目前为止都很好)。但是,当用户单击提示框上的"取消"时,消息显示"null"是一个好名称。我试图抓住这个,但它似乎不起作用。如何使其在用户单击"取消"时显示一条消息,指出您没有输入有效名称?

这是它的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",为无效消息做好准备。

你的语法在这里很糟糕:

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

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

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

if (!T || !PetName)

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

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

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

然后只需检查

if (T === false) {

如果按下"确定"或按 return,prompt将返回输入的值,包括空字符串"",如果按下"取消",则返回null

将此

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

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