我正在尝试根据文本框中的内容获得特定的输出

时间:2015-05-08 13:28:22

标签: javascript

我正在尝试根据文本框中的内容获得特定的输出,使用java脚本,但我使用的所有代码仅适用于不带“text”的数字。当我用“文本”替换数字时,无论文本框中是什么,它都会输出。

 <!DOCTYPE html>
 <html>
   <body>
     <imput id="x"value=""/>
     <button on Click="myFunction():">Try it</button>
     <p id="demo"></p>
     <script>
       function myFunction() {
         var qpw = "eighteen";
         var w = (qpw = "eighteen") ? "dieciocho":"no caps";
         document.getElementByld("demo").innerHTML = w + "";
       }
     </script>
     <script>
       function myFunction() {
         var qpe = "blue";
         var e = (qpe = "blue") ? "azul":"no caps";
         document.getElementByld("demo").innerHTML = e + "";
       }
     </script>
   </body>
 </html>

2 个答案:

答案 0 :(得分:0)

您正在尝试使用错误的等号来表示布尔逻辑:

var w = (qpw = "eighteen") ? "dieciocho":"no caps";

应该是:

var w = (qpw == "eighteen") ? "dieciocho":"no caps";

或更多,适当:

var w = (qpw === "eighteen") ? "dieciocho":"no caps";

以下是有关equals:Does it matter which equals operator (== vs ===) I use in JavaScript comparisons?

用法的完整说明

我认为代码中存在一些拼写错误,只是简单的错误,我将fiddle问题和解决方案放在一起。

我从你的html中删除了内联javascript声明,并在按钮中添加了一个id:

<input id="x"value=""/>
 <button id="btn">Try it</button>
 <p id="demo"></p>

然后我将javascript中的click事件处理程序设置为按钮:

document.getElementById('btn').onclick = myFunction;

然后我删除了双重函数并创建了一个单独的函数来检查用户输入:

function myFunction() {
    var userData = document.getElementById('x').value;
   var qpe = "blue";
    var qpw = "eighteen";
    var e = (userData == qpe) ? "azul": (userData == qpw)? "dieciocho" :"no caps";
   document.getElementById("demo").innerHTML = e + "";
 }

答案 1 :(得分:0)

您的代码中存在多个错误:

首先:

<button on Click="myFunction():">Try it</button>

应该是:(参见属性名称和冒号 - >分号)

<button onclick="myFunction();">Try it</button>

其次,你不能定义两个具有相同名称的函数,最后一个只是覆盖第一个定义的函数...这意味着所有这些代码都没有使用:

 <script>
 function myFunction() {
   var qpw = "eighteen";
   var w = (qpw = "eighteen") ? "dieciocho":"no caps";
   document.getElementByld("demo").innerHTML = w + "";
 }
 </script>

第三,你是一行if语句是错误的:

var e = (qpe = "blue") ? "azul":"no caps";

应该是:(两个等号用于宽松比较(三个等号用于严格比较。例如"1" == 1"1" !== 1))

var e = (qpe == "blue") ? "azul":"no caps";

此外没有名为<imput>的html元素我认为你的意思是<input>

<input id="x"value=""/>