提示时取消和空输入的值不同
Different values for cancel and empty input on prompt
我刚开始使用Javascript,我一直在尝试制作一个可以打招呼的小脚本。这是:
function hello() {
while (!name) {
var name = prompt("What's your name", "");
var greetingElement = document.getElementById("greeting");
greetingElement.style.color = "red";
if (name == null) {
greetingElement.innerHTML = "Boring!";
break;
}
else if (name == 0) {
greetingElement.innerHTML = "Don't you have a name";
}
else {
greetingElement.innerHTML = "Hello " + name + "!";
}
}
}
window.onload = hello;
我的问题是,如果你在提示上按cancel,我想显示一条消息,如果你没有输入并按OK,我想另显示一条。据我所知,这两个操作都会导致值为null,那么我如何显示不同的消息?
我在代码中所做的显然不是最佳的,我知道这一点。
我也希望while循环结束,如果你按下cancel,它现在没有。
如果需要检查一些不同的falsy值,则需要将它们与Strict equal
运算符进行比较。你可以在下面的代码中看到它。我还对您的代码做了一些小的更改,使其能够流畅地工作。
function hello(){
var greetingElement = document.getElementById("greeting");
greetingElement.style.color = "red";
while (!name) {
var name = prompt("What's your name?", "");
if (name === null || name === false) { // Canceled
greetingElement.innerHTML = "Boring!";
break; // Leave this out, if the name is mandatory
}
if (name === "") { // OK, but no name
greetingElement.innerHTML = "Don't you have a name?";
} else { // OK with a name
greetingElement.innerHTML = "Hello " + name + "!";
}
}
}
jsFiddle 的实时演示
相关文章:
- 如何解决取消抖动的用户输入上的竞争条件
- 使用 ng-change 对输入类型数据进行 JavaScript 取消事件
- 如果用户在输入上按 Enter 键,则取消挖空速率限制扩展器
- 当输入字段(文本框)有值时,选中/取消选中复选框
- HTMLJavascript-如何向输入语句添加函数并隐藏输入语句,除非选中“是”,然后取消隐藏
- 如何集中输入,并取消选择其中的文本
- 通过 Javascript 保存/取消输入
- 屏蔽和取消屏蔽 html 中的输入文本
- 临时取消绑定鼠标输入从元素
- 取消选择较低的无线电输入
- 按钮输入上的 CSS 取消了 jQuery 中禁用的 prop 属性
- 取消时隐藏输入元素
- 在输入类型=“文件”上取消事件
- 取消表单提交,但允许输入键事件
- JavaScript:如果用户取消confirm(),文件输入onclick将阻止更改
- 要取消映射输入文本框的默认值
- AngularJS输入检查/取消检查有2个功能
- 在返回/输入时取消选择输入框
- 单击输入字段将背景颜色应用于父项,并取消选择初始选择的单选按钮
- 即使用户选择“取消”,我如何保留FileDialog输入值?(ASP.Net/Javascript)