2013-07-26 82 views
2

快速更新!Javascript:请求一个数值输入,给出不同的答案

我可能已经修复了它。现在代码如下所示:

<script type="text/javascript"> 
    function rangeAnswers() { 
    var answer = prompt ("How much do you like pizza?") 
    if (answer > 0) 

      confirm("That's a bit low") 
      window.location="http://www.continue.com"; 


     if (answer > 20) 

      confirm("Quite a decent score, isn't it?") 
      window.location="http://www.continue.com"; 

    } 
</script> 

它可以工作。在这一点上,我认为如果我把其他的如果在< 0或> 100的末尾,我可以提示错误信息,并没有链接到页面中的那两个小小的如果我留在页面上的权利?


首先让我告诉你,我刚开始使用js,所以这可能有点愚蠢。

这是我需要做的。我有一个正常的HTML链接,带有一个叫做click的函数,它询问用户“你喜欢比萨(0 100)多少?”。

用户键入一个数字,我想要不同的答案,它仍然会引导你到链接(所以没有控制发回用户在这里)根据他写的数量。

我想在0-25,26-50,51-75,71-100 ELSE(更低或更高的值)处发出四个主要断点,它只是警告(“您指定的数字无效”)并停留在页面中所以用户可以再次点击并输入一个正确的值(然后没有什么奇怪的)。

我想要的东西,当他插入一个正确的值是让我们说0-25“你不喜欢它”,26-50“不好但不坏”etcetera +链接。

这里是我的HTML一个:

<h2><a href="javascript:rangeAnswers();">Click here to tell us how much you like pizza and continue!</a></h2> 

这是我的JavaScript函数这不加载的基础!我尝试了一个简单的确定/取消提示,它工作,但我仍然无法得到if/else语句的逻辑。 这是旧的代码,我重新考虑了正确的一个! 功能rangeAnswers(){ VAR答案=提示( “你有多喜欢比萨饼?”) 如果(答案)> 0

 { 
      alert= "That's a bit low" 
      window.location="http://www.continue.com"; 
     } else 

      if (answer) > 20 

     { 
      alert= "You don't like it nor hate it" 
      window.location="http://www.continue.com"; 
     } else 

    } 
</script> 

我认为这就是现在,我还在努力在我等待答复的同时处理这件事,但现在已经有一段时间了,我无法得到我错过的东西。

下面是更新工作代码

这不加载我的警报/提示,虽然。

function rangeAnswers() { 
    var answer = prompt ("How much do you like pizza?") 
    if (answer > 0) 

      alert= "Nice!" 
      window.location="http://www.continue.com"; 


     if (answer > 20) 

      alert= "Nice!" 
      window.location="http://www.continue.com"; 

    } 
+0

普莱斯添加 做同样的事情将是使用开关情况下其他方式你所有的源代码......或者这是你所拥有的一切吗? – Damian0o

+0

尝试在Firefox浏览器中打开开发人员控制台,或使用Chrome浏览器中的开发人员工具... – Damian0o

+0

使用您的浏览器中的控制台查找并修复所有语法错误'if(answer> 0)''而不是'if(answer)> 0' –

回答

1

t没有加载,因为你有一个尾随其他,你有围绕答案的问题,但不是围绕整个布尔值。尝试:

<script type="text/javascript"> 
    function rangeAnswers(){ 
     var answer = prompt ("How much do you like pizza?"); 
     if (answer > 0) { 
      alert("Nice!"); 
      window.location.href="http://www.continue.com"; 
     }else if (answer > 20){ 
      alert("Nice!"); 
      window.location.href="http://www.continue.com"; 
     } 
    } 
</script> 

编辑 - 完整版:

<script type="text/javascript"> 
    function rangeAnswers(){ 
     var answer, 
      bad=false; 
     while(true){ 
      answer = prompt('How much do you like pizza?'); 
      if(isNaN(answer)){ 
       bad=true; 
      }else{ 
       bad=false; 
       answer = parseInt(answer,10); 
       if(answer>100 || answer<0){ 
        bad=true; 
       }else if(answer===100){ 
        alert('Wow, you REALLY love pizza!'); 
       }else if (answer >= 75) { 
        alert('75-99!'); 
       }else if (answer >= 50){ 
        alert('50-74'); 
       }else if (answer >= 25){ 
        alert('25-49'); 
       }else{ 
        alert('0-24'); 
       } 
       if(!bad){ 
        window.location.href="http://www.continue.com"; 
        return; 
       } 
      } 
      if(bad){ 
       alert('I need a number between 0 and 100!'); 
      } 
     } 
    } 
</script> 
+0

谢谢你。我实际上在这里和主要帖子中修复了代码。 它的工作原理,但不显示我的警报/提示! – daghene

+0

为了得到警报,你需要'alert('text');'因为它是一个函数调用,并且函数使用这些派生类。 – AngelWarrior

+0

现在,它的工作原理,谢谢!我已经将代码更新为最后一个问题,这是错误的值(小于零,超过100)。 – daghene

0

你的HTML应该看起来像这样

<head> 
    <title>Title</title> 
    <script src="file.js" type="text/javascript"></script> 
</head> 

<body> 
    <h2><a href="javascript:rangeAnswers();">Click here to tell us how much you like pizza and continue!</a></h2> 

</body> 

</html> 
0

在你的代码试试这个

function rangeAnswers() { 
     var answer = prompt ("How much do you like pizza?")  
     if (answer<=25 && answer =>0){ 
      alert("That's a bit low")//you are not alerting your data properly. 
      window.location.href="http://www.continue.com";//use window.location.href instead of window.location 
     } 
     else if (answer<=50 && answer =>25){ 
      alert("You don't like it nor hate it") 
      window.location.href="http://www.continue.com"; 
     } 
    } 

UPDATE

function rangeAnswers() { 
      var answer = prompt ("How much do you like pizza?") 
    switch(true){ 
      case answer<=25 && answer =>0: 
       alert("That's a bit low")//you are not alerting your data properly. 
       window.location.href="http://www.continue.com";//use window.location.href instead of window.location 
      break; 
      case answer<=50 && answer =>25: 
       alert("You don't like it nor hate it") 
       window.location.href="http://www.continue.com"; 
      break; 
     } 
    } 
+0

为什么downvote..answer完全有效! –

+0

该switch语句不正确。如果答案为“真”,则答案<= 25 &&答案> = 0'只等于答案。您的“大于或等于”运算符也不正确 –

+0

更不用说您的缩进不一致了 –

0

我认为不正确的语法使你的进程不会:

<script type="text/javascript"> 
function rangeAnswers() { 

    var answer = prompt ("How much do you like pizza?"); 
    answer = answer - 0; 
    if(isNaN(answer)) 
    { 
     alert("The number you specified is invalid"); 
    }else if (answer >= 0 && answer <=25) 
    { 
     alert("You don't like it very much"); 
     window.location="http://www.continue.com"; 
    }else if (answer > 25 && answer <=50) 
    { 
     alert("Not good but not bad"); 
     window.location="http://www.continue.com"; 
    } 
    //and so on .... 
} 
</script> 
相关问题