关于window.prompt确认和取消的问题

ray148121704 2011-09-08 10:14:59
window.prompt提示框点击取消后返回的是"",点击确定后返回的是用户输入内容。

如果想实现如下效果怎么做:
1、当用户点击确认但是没有输入时,提示用户不能输入为空。
2、当用户点击取消时,直接return掉。

因为如果不输入内容的话,点确认也是返回的"",跟点取消返回的内容相同,所以无法区分判断。
现在只能是在prompt提示框中加入了一个默认值,勉强能实现效果。请问还有没有其他好的方法能够解决此问题的?
求高手指点~~~!
...全文
1245 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylong2651 2012-08-05
  • 打赏
  • 举报
回复
window.prompt() 这个方法点取消的话,返回的是null,所以可以根据其返回值来判断接下来的操作.
你可以用firebug来跟踪一下.
雨天要吃饭 2011-09-09
  • 打赏
  • 举报
回复
使用jquery.ui插件的 .dialog()功能很容易实现你说的这个东西。
BLUE_LG 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ray148121704 的回复:]
引用 1 楼 zswang 的回复:

JScript code
if (prompt("input", "") === null) {
/* todo : cancel */
return;
}


===不能解决返回值都是""的问题啊。。点确定的时候返回的跟点取消时返回的都是"",还是无法区分。。
[/Quote]

<html>
<head></head>
<script>
function setName(obj){
var value = window.prompt("用户名:", "yourname");
var username = document.getElementById("username");
if(!value){username.value="";}
else username.value = value;
}
</script>
<body>
<input type="text" id="username" readonly/>
<input type="button" value="输入" onclick="setName(this)">
</body>
</html>
楼主试试这个。。。
ray148121704 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zswang 的回复:]

JScript code
if (prompt("input", "") === null) {
/* todo : cancel */
return;
}
[/Quote]

===不能解决返回值都是""的问题啊。。点确定的时候返回的跟点取消时返回的都是"",还是无法区分。。
王集鹄 2011-09-08
  • 打赏
  • 举报
回复
===更严格的相等比较,包括类型

0 == false // true
0 === false // false

"" == 0 // true
"" === 0 // false
ray148121704 2011-09-08
  • 打赏
  • 举报
回复
请问===是什么意思?原来好像见过一次但是不常用忘记了。。。
SnowDrift 2011-09-08
  • 打赏
  • 举报
回复

<html>
<head></head>
<script>
function setName(obj){
var value = window.prompt("用户名:", "yourname");
var username = document.getElementById("username");
username.value = value;
}
</script>
<body>
<input type="text" id="username" readonly/>
<input type="button" value="输入" onclick="setName(this)">
</body>
</html>

这个lZ可以试试(这段代码不是我的..)
王集鹄 2011-09-08
  • 打赏
  • 举报
回复
if (prompt("input", "") === null) {
/* todo : cancel */
return;
}
sunlyc20099 2011-09-08
  • 打赏
  • 举报
回复
function Button1_onclick() {
if (window.prompt("your name", "") =="")
{
window.alert("不能为空");
}
else
{
return;
}
}





<input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
王集鹄 2011-09-08
  • 打赏
  • 举报
回复
http://jsfiddle.net/ZCeWK/

if (prompt("input", "") == null) {
alert('cancel');
}


ie6下也正确,你怎么测试的?
ray148121704 2011-09-08
  • 打赏
  • 举报
回复
都不是很好使。。看来要想实现只能自己写窗体了。。谢谢大家

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧