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

时间:2015-01-05 09:42:13

标签: javascript validation null prompt

我有一些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)

}

注意我是如何尝试使用&#34; if(T == false | T ==&#34; null&#34;)&#34;捕获&#34; null&#34;准备好无效的消息。

3 个答案:

答案 0 :(得分:1)

你的语法很糟糕:

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

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

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

if (!T || !PetName)

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

答案 1 :(得分:0)

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

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

然后只需检查

if (T === false) {
如果按下确定或返回,

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

答案 2 :(得分:0)

在if条件中加入此行会处理取消选项:

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