您如何判断用户何时从默认的 JavaScript 提示符 () 中单击取消
How can you tell when user clicked cancel from a JavaScript prompt() with a default?
通常,如果您向用户提出如下prompt
问题,并且用户点击取消,则prompt
函数返回null
:
var name = prompt('What is your name?');
var hitCancel = name === null;
效果很好,除了现在我想在提示中输入默认答案:
var name = prompt('What is your name?', 'Fred');
现在,即使用户点击取消,也会返回"弗雷德"!即使用户输入"史密斯"并单击取消,"弗雷德"仍将返回!如何知道用户何时单击了取消?
更新:忘了提到我已经在Firefox和Chrome中对此进行了测试。我知道还有其他库可供用户输入,但在我的特殊情况下,我需要使用 prompt
函数。
更新 2:"''x00Fred"建议用作默认值。注意到那里有一些有趣的东西。如果单击"取消",则返回"Fred"。但是,如果只是单击"确定",则会返回"''x00Fred"。我希望是相反的方式!因为我不知道是有人写了"弗雷德"还是他们点击了取消。
更新3:我觉得很傻,问题出在我的代码上。 prompt
实际上在点击取消时返回null
!
也许我错过了一些东西,但对我来说,即使有默认答案,prompt()
函数也总是在取消时返回null
。
看小提琴:http://jsfiddle.net/TuzE3/3/
尽管使用提示或警报功能并不是最理想的。 这是它是如何完成的
var defaultName = "Fred";
var name = prompt('What is your name?');
if (!name){
// this section means they clicked cancel
name = defaultName;
// plus do anything else you want in case of cancel.
}
对于我的测试(Chrome 和 Safari for mac),在这种情况下取消返回空字符串,因此请尝试:
var name = prompt('What is your name?', 'Fred');
var hitCancel = !(name != "" && name !== null);
console.log(hitCancel)
演示:http://jsfiddle.net/GK5wq/
相关文章:
- 是否可以使用WSH javascript sendKeys方法将Alt+Space发送到命令提示符
- 您如何判断用户何时从默认的 JavaScript 提示符 () 中单击取消
- 如何在 JavaScript 中的命令提示符下进行操作
- 从 Python 执行提示符 Javascript
- javascript 数组提示符中的多个真答案
- 如何从javascript调用命令提示符
- 使用 Javascript 在命令提示符下提示用户输入
- 在 JavaScript 提示符下将正数和负数中的数字相加
- Javascript提示符不适用于诺基亚Lumia手机
- JavaScript“未定义提示符”引用错误
- 为什么这个javascript提示符不能工作?
- 基本JavaScript -如何使某些代码行在包含提示符/提示符的函数之前运行
- 在JavaScript中使用提示符接受大写值
- 使用JavaScript提示符显示选项列表
- javascript -从提示符返回值
- Javascript比较不能使用提示符、while循环和!==
- 在"alert"中防止换行javascript中的提示符
- Javascript提示符内循环
- Regex字母仅用于验证javascript提示符
- 将表单输入更改为JavaScript提示符