将输入值传递给变量
编辑:
这是我在网上找到的有关多态性的示例代码,我对其进行了一些更改并删除了 if-else 语句。我直接将选定的值传递给 v,然后尝试运行:
<!DOCTYPE html>
<html>
<head>
<title>
Polymorphism in JavaScript
</title>
</head>
<body>
<div class = "results">
<h2> Polymorphism in JavaScript </h2>
<form>
<p> Please select your Vehicle type: </p>
<select id="input">
<option value="Car">Car</option>
<option value="Truck">Truck</option>
</select>
<br>
<input type="button" value="Submit" onclick = "processData(this.form)">
</form>
<div class = "resultText">
<p id = "result"> </p>
</div>
</div>
<script type = "text/javascript">
class Vehicle {
run() {
return " Vehicle is running " ;
}
}
class Car extends Vehicle {
run() {
return " Car is running " ;
}
}
class Truck extends Vehicle {
run() {
return " Truck is running " ;
}
}
function processData(form) {
v = document.getElementById("input").value;
console.log(v);
msg = v.run();
document.getElementById("result").innerHTML = msg;
}
</script>
</body>
</html>
我收到错误“Uncaught TypeError: v.run is not a function”
EDIT:
This is an example code I found online about polymorphism, I changed it a little bit and got rid of if-else statements. I directly pass the selected value to v and then try to run:
<!DOCTYPE html>
<html>
<head>
<title>
Polymorphism in JavaScript
</title>
</head>
<body>
<div class = "results">
<h2> Polymorphism in JavaScript </h2>
<form>
<p> Please select your Vehicle type: </p>
<select id="input">
<option value="Car">Car</option>
<option value="Truck">Truck</option>
</select>
<br>
<input type="button" value="Submit" onclick = "processData(this.form)">
</form>
<div class = "resultText">
<p id = "result"> </p>
</div>
</div>
<script type = "text/javascript">
class Vehicle {
run() {
return " Vehicle is running " ;
}
}
class Car extends Vehicle {
run() {
return " Car is running " ;
}
}
class Truck extends Vehicle {
run() {
return " Truck is running " ;
}
}
function processData(form) {
v = document.getElementById("input").value;
console.log(v);
msg = v.run();
document.getElementById("result").innerHTML = msg;
}
</script>
</body>
</html>
I'm receiving error "Uncaught TypeError: v.run is not a function"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 var v = document.getElementById("input").value; 来获取表单输入的值。
然后你必须注意在 html 元素中添加一个
id="input"
以便 JS 知道它是哪个输入。You can use
var v = document.getElementById("input").value;
to get the value of a input of a form.Then you have to take care that you add an
id="input"
to the html element so that JS knows which input it is.我不知道我是否完全理解你想做什么,但试试这个:)
结果:

I don't know if I completely understood what are you trying to do but try this :)
Result:
