我有一些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;准备好无效的消息。
答案 0 :(得分:1)
你的语法很糟糕:
if (T == false | T == "null")
null
不应该是字符串,或者||
不是|
。
您还想检查PetName
是null
,而不是正则表达式的结果。
该行应如下所示:
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!";
}