我正在尝试根据文本框中的内容获得特定的输出,使用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>
答案 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=""/>