JS学习的第二天。。继续遇到问题。。。原因可能是被网上的博客误导了。。。
博客原文让我觉得prompt()输入框点击取消时返回的是文本型的null,结果通过typeof()函数了解到点击取消时返回的是特殊类型的null。
prompt()的用法:
prompt("输入提示内容","输入框默认内容(选填)");
1、当点击确认时返回输入框内的内容,为字符串。即使输入框内没有输入内容也会返回""。
2、当点击取消时返回特殊类型的null。
判断输入了null还是点击取消按钮
被误导的想法:
var name = prompt("请输入name");
if(name == "null"){
alert("取消按钮,或输入了null");//暂时不会解决将两种可能分开判断的问题
}else if(name == ""){
alert("输入为空");
}else{
alert("name="+name);
}
正确判断方法:
var name = prompt("enter something","abc");
if (name == null){
alert("取消按钮");
}else if(name == "null"){
alert("输入了null");
}else if(name == ""){
alert("输入为空");
}else{
alert("name="+name);
}
网上使用的正则表达式也是个不错的方法,不过我不会。。
var ret = prompt("enter something","abc");
if (ret == null)
{
alert("cancelled");
}
else if (ret.replace(/^\s+|\s+$/g,"") == "")
alert("empty");
else
alert(ret);