Javascript提示取消终止功能

Javascript prompt cancel terminates function

本文关键字:功能 终止 取消 提示 Javascript      更新时间:2023-09-26

所以我有一个函数,可以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 可能会被取消。试试这个:

编辑更好的答案:

这是一个实际上我相信你想做的事情:替换"测试"

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!') ; }
    }
}