Javascript提示被取消,在While循环中不行为
Javascript Prompt Cancelled Not Behaving in While Loop
我有一个提示符,它基本上是一个必填字段,不能包含小数。我有一个while循环,它应该继续提示用户输入信息,直到显示一个数字,无论是否单击OK或Cancel。只要点击OK按钮,一切都可以正常工作。如果留空并单击OK,或者提供了带有小数的数字并单击OK,则继续提示。但是如果点击取消,它不会继续提示。
var rmiles = prompt("Please indicate actual miles driven for payroll");
while (rmiles == null | rmiles == "null" | rmiles == " " | rmiles.indexOf(".") != -1) {
alert("Mileage is required when arriving on site and can only be whole numbers. No Decimals. Please enter 0 if you did not intend to arrive on site.");
rmiles = prompt("Please indicate actual miles driven for payroll");
}
我认为问题在于您的while
条件-您在所有条件下都是按位或|
。这意味着rmiles.indexOf(".")
总是被调用,即使rmiles
被prompt
设置为null
时,单击取消。这是因为按位或不会短路。
尝试逻辑或||
短路,从而避免null引用错误:
while (rmiles == null || /*...*/
因为当用户点击'取消'时rmiles
为空…因此,rmiles.indexOf
产生一个错误/异常并终止循环。
相关文章:
- 基于两个条件退出While循环
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 为什么我的While循环不起作用
- 使用while循环+break是一种可接受的方式;goto;手术的结束
- 如何将while循环中生成的值存储到变量中,以便以后在JQuery中使用
- jquery,while循环在后台运行,同时while循环
- jquery悬停和while循环
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何修复 while 循环
- Jquery扩展点的宽度,同时通过while循环递增
- 斐波那契序列Javascript做while循环
- 为什么这个while循环不能使用AND逻辑运算符
- bluebird promise的while()循环正确(无递归?)
- JavaScript while循环没有'不能在有条件的情况下工作
- While循环在JavaScript中永远运行
- 逻辑(JSint友好)等效于while循环中的此赋值
- Javascript:用if语句运行while循环,用子句随机生成内容
- 如何使javascript在SQL while循环中回显所有数据
- 使用ajax循环while中的多个表单
- JavaScript 中的无限循环 - while 循环