Javascript 提示取消终止函数
Javascript prompt cancel terminates function
所以我有一个函数 prompt
向用户发送一个值 (element0
) 并将该值与已经存在的值 (elementIJ.name
) 进行比较。那部分工作正常,但问题来了:我希望函数在取消 prompt
时做一些不同的事情(就此而言,通过单击取消或按 Esc 键),但它看起来像函数终止。我已经使用 alert
进行了 运行 测试,但我的想法是实际做其他事情。这是我的代码:
var element0 = prompt('Enter element name').toUpperCase() ;
if ( element0 == null || element0 == '' || element0 == false || !element0 ) { alert('ALERT!') ; }
while ( element0 !== elementIJ.name.toUpperCase() )
{
element0 = prompt('Try again').toUpperCase() ;
if ( element0 === null || element0 === '' || element0 === false ) { alert('ALERT!') ; }
}
// ... do things for element0 === elementIJ.name.toUpperCase()
正如我所说,没有 if
语句的位工作正常,只是 prompt
取消没有。我一直在网上寻找答案,但似乎大多数人的问题与我的问题完全相反:他们希望取消以终止该功能...那么我做错了什么?
谢谢!
您不能在第一行执行 toUpperCase(),因为 element0 可能会被取消。试试这个:
编辑更好的答案:
这是一个我相信你正在尝试做的事情:
替换 'TEST'
function promptTest(){
var element0 = prompt('Enter element name');
if ( element0 == null || element0 == '' || element0 == false || !element0 ) {
alert('cancelled!')
return false;
}
else{
return element0.toUpperCase();
}
}
var promptVar = promptTest();
while (promptVar && promptVar !== 'TEST' )
{
promptVar = promptTest();
}
旧答案:
var element0 = prompt('Enter element name');
if ( element0 == null || element0 == '' || element0 == false || !element0 ) {
alert('ALERT!') ;
}
else{
element0 = element0.toUpperCase()
console.log("element0: " + element0)
while ( element0 !== elementIJ.name.toUpperCase() )
{
element0 = prompt('Try again').toUpperCase() ;
if ( element0 === null || element0 === '' || element0 === false ) { alert('ALERT!') ; }
}
}
所以我有一个函数 prompt
向用户发送一个值 (element0
) 并将该值与已经存在的值 (elementIJ.name
) 进行比较。那部分工作正常,但问题来了:我希望函数在取消 prompt
时做一些不同的事情(就此而言,通过单击取消或按 Esc 键),但它看起来像函数终止。我已经使用 alert
进行了 运行 测试,但我的想法是实际做其他事情。这是我的代码:
var element0 = prompt('Enter element name').toUpperCase() ;
if ( element0 == null || element0 == '' || element0 == false || !element0 ) { alert('ALERT!') ; }
while ( element0 !== elementIJ.name.toUpperCase() )
{
element0 = prompt('Try again').toUpperCase() ;
if ( element0 === null || element0 === '' || element0 === false ) { alert('ALERT!') ; }
}
// ... do things for element0 === elementIJ.name.toUpperCase()
正如我所说,没有 if
语句的位工作正常,只是 prompt
取消没有。我一直在网上寻找答案,但似乎大多数人的问题与我的问题完全相反:他们希望取消以终止该功能...那么我做错了什么?
谢谢!
您不能在第一行执行 toUpperCase(),因为 element0 可能会被取消。试试这个:
编辑更好的答案:
这是一个我相信你正在尝试做的事情: 替换 'TEST'
function promptTest(){
var element0 = prompt('Enter element name');
if ( element0 == null || element0 == '' || element0 == false || !element0 ) {
alert('cancelled!')
return false;
}
else{
return element0.toUpperCase();
}
}
var promptVar = promptTest();
while (promptVar && promptVar !== 'TEST' )
{
promptVar = promptTest();
}
旧答案:
var element0 = prompt('Enter element name');
if ( element0 == null || element0 == '' || element0 == false || !element0 ) {
alert('ALERT!') ;
}
else{
element0 = element0.toUpperCase()
console.log("element0: " + element0)
while ( element0 !== elementIJ.name.toUpperCase() )
{
element0 = prompt('Try again').toUpperCase() ;
if ( element0 === null || element0 === '' || element0 === false ) { alert('ALERT!') ; }
}
}