我正在尝试创建一个可以收集答案并将其与搜索网址绑定的文本框。
我的问题是我可以在文本框中输入内容,但它不会占用脚本。
显示的错误是:
未捕获的TypeError:document.getElementById不是构造函数
at myFunction(index.html:23)
在HTMLButtonElement.onclick(index.html:14)
在Chrome和Maxthon 5中测试
答案 0 :(得分:0)
当您尝试访问new
时,您不需要document
。
另外一项建议是使用input
name
的通用字词而不是网址。
工作代码段
<form id="myForm" method="get">
Version: <input type="text" name="http://dtht-webfile.000webhostapp.com/SS/#search=" placeholder="Example:0.3.1"><br>
</form>
<button onclick="myFunction()">Search</button>
<p id="version"></p>
<p></p>
<p id="final"></p>
<script type="text/javascript">
function myFunction() {
var y = document.getElementById("myForm").elements[0].value;
document.getElementById("version").innerHTML = y;
// var z = document.getElementById("version").innerHTML;
// z is same as y
if (y < 035) {
document.getElementById("final").innerHTML = "You're Lastest Version.";
} else {
document.getElementById("final").innerHTML = "You're Outdated. Please Go Download Lastest.";
}
}
</script>
如果您希望用户输入数字,那么最好使用适当的输入类型或使用正则表达式仅允许数字,否则您可以在比较上述代码中的y
之前执行以下操作与Number(y)
工作小提琴 - https://jsfiddle.net/k9d9hwbz/
答案 1 :(得分:0)
无法解释上述注释,因此只重写脚本函数。
<script>
function myFunction() {
var y = document.getElementById("myForm").elements[0].value;
document.getElementById("version").innerHTML = y;
var z = document.getElementById("version").innerHTML;
//z will be in the form of string,converting it to number format
if (Number(z) > 3.5) {
document.getElementById("final").innerHTML = "You're Lastest Version.";
} else {
document.getElementById("final").innerHTML = "You're Outdated. Please Go Download Lastest.";
}
}
</script>
答案 2 :(得分:0)
问题在第23行。
var z = new document.getElementById("version").innerHTML;
删除新关键字并执行代码。
完成第21行的代码
var y = document.getElementById("myForm").elements[0].value;
此行有效,但会进一步为元素分配唯一ID,并使用该ID获取元素。随着代码越来越长,ID会帮助你很多。
将此用作参考https://www.w3schools.com/
熟悉JavaScript后通过jQuery
工作小提琴是here