Javascript提示已取消,但在While循环中不起作用
我有一个提示,基本上是必填字段,不能包含小数。我有一个while循环,它应该继续提示用户输入信息,直到显示一个数字,而不管单击OK还是Cancel。只要点击OK按钮,一切正常。如果留空并单击“确定”,或者如果提供了带小数点的数字并单击“确定”,则会继续提示。但如果单击“取消”,则不会继续提示Javascript提示已取消,但在While循环中不起作用,javascript,prompt,Javascript,Prompt,我有一个提示,基本上是必填字段,不能包含小数。我有一个while循环,它应该继续提示用户输入信息,直到显示一个数字,而不管单击OK还是Cancel。只要点击OK按钮,一切正常。如果留空并单击“确定”,或者如果提供了带小数点的数字并单击“确定”,则会继续提示。但如果单击“取消”,则不会继续提示 var rmiles = prompt("Please indicate actual miles driven for payroll"); while (rmiles == null | rmi
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");
}
我相信问题在于你的
状态,而状态-你在所有条件下都在做。这意味着总是调用rmiles.indexOf(“.”
,即使单击取消时rmiles
被prompt
设置为null
。这是因为按位OR不会短路
尝试短路,从而避免零参考错误:
while (rmiles == null || /*...*/
我相信问题在于你的状态,而状态-你在所有条件下都在做。这意味着总是调用rmiles.indexOf(“.”
,即使单击取消时rmiles
被prompt
设置为null
。这是因为按位OR不会短路
尝试短路,从而避免零参考错误:
while (rmiles == null || /*...*/
因为当用户单击“取消”时,rmiles
为空。。。因此,rmiles.indexOf
产生错误/异常并终止循环。因为当用户单击“取消”时,rmiles
为空。。。因此,rmiles.indexOf
产生错误/异常并终止循环。这听起来像是用户体验的反基督。您使用提示和警报而不是lightbox或类似内容中的必填字段,这有什么原因吗?这听起来像是用户体验的反基督。你使用提示和警报而不是lightbox中的必填字段或类似的东西,这是有原因的吗?这完全奏效了。这件事一经允许,我马上就接受你的回答。谢谢这完全奏效了。这件事一经允许,我马上就接受你的回答。谢谢