gpt4 book ai didi

Javascript 改变表单元素

转载 作者:行者123 更新时间:2023-11-30 06:50:25 25 4
gpt4 key购买 nike

我正在尝试重温我的 JS,我想要它以便用户可以输入他们的名字和姓氏以及两个数字。当他们单击按钮时,我希望文本更改为“你好姓名!你的总和是数字!”

我的代码不工作,有人能告诉我我的问题出在哪里吗?

<html>
<head>
<meta charset="UTF-8">
<title>JS Review</title>

<style>
body{background: #8ADFB6; font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, "sans-serif";}
#container{background: white; padding: 30px; width: 760px; margin: 0 auto;}
#output{
padding: 10px; margin: 10px;
}
</style>
</head>

<body>

<div id="container">

<h1>Using Form Elements with Javascript</h1>


<p>We can utilize user input to create feedback</p>
First Name: <input id="first">
Last Name: <input id="last">
<p></p>
Number 1: <input id="num1">
Number 2: <input id="num2">
<p></p>
<button onClick="Respond()">Respond</button>

<div id="output"></div>
</div>

<script>
function myFunction(){

var a = document.getElementById("first").value;
var b = document.getElementById("last").value;
var c = document.getElementById("num1").value;
var d = document.getElementById("num2").value;
var n= document.getElementById("sum").value;

var n= c + d;

document.getElementById("Respond").innerHTML="Respond";

}



document.getElementById("Respond").innerHTML = "Hello! Your sum is !";


</script>
</body>
</html>

最佳答案

你有很多问题。

首先,您尝试进行数学运算但使用的是字符串值。你不能这样做,否则他们会合并并生成 3 + 1 = 31 而不是 4。你可以通过解析 float 来解决这个问题,现在我建议的一件事是确认它们是数字,这样你就不会做无效的事情解析。

if(isNaN(c) || isNaN(d) {
alert('Invalid Input');
}else{
var n= parseFloat(c) + parseFloat(d);
document.getElementById("Respond").innerHTML = "Hello! Your sum is " + n;
}



接下来,您正在调用函数响应,但该函数不存在。确实存在的是 myFunction,因此您有几个选择。

要么更新您 JS 中的这一行以使用 Respond 作为函数名称:

function myFunction(){

应该是:

function Respond(){

或者更新您的 HTML 按钮以使用正确的函数名称:

 <button onClick="Respond()">Respond</button>

应该是:

 <button onClick="myFunction()">Respond</button>



接下来,您要查找 ID 为 respond 的元素,但该元素不存在。您又一次使用了错误的 ID。您需要在那里使用输出。

这一行:

    document.getElementById("Respond").innerHTML = "Hello! Your sum is !";

应该是:

    document.getElementById("output").innerHTML = "Hello! Your sum is " + n + "!";



接下来,您试图获取 ID 为 sum 的某物的值,但它根本不存在。

直接删除这一行:

        var n= document.getElementById("sum").value;



最后,为什么你的值更新器在函数调用之外?该更新程序需要位于函数内部,其中包含实际获取值的内容。如果不这样做,您将永远无法更新字符串。

<html>
<head>
<meta charset="UTF-8">
<title>JS Review</title>

<style>
body{background: #8ADFB6; font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, "sans-serif";}
#container{background: white; padding: 30px; width: 760px; margin: 0 auto;}
#output{
padding: 10px; margin: 10px;
}
</style>
</head>

<body>

<div id="container">

<h1>Using Form Elements with Javascript</h1>


<p>We can utilize user input to create feedback</p>
First Name: <input id="first">
Last Name: <input id="last">
<p></p>
Number 1: <input id="num1">
Number 2: <input id="num2">
<p></p>
<button onClick="myFunction()">Respond</button>

<div id="output"></div>
</div>

<script>
function myFunction(){

var a = document.getElementById("first").value;
var b = document.getElementById("last").value;
var c = document.getElementById("num1").value;
var d = document.getElementById("num2").value;
if(isNaN(c) || isNaN(d)) {
alert('Invalid Input');
}else{
var n= parseFloat(c) + parseFloat(d);
document.getElementById("output").innerHTML = "Hello! Your sum is " + n;

}

}


</script>
</body>
</html>

因此,虽然我在这里给了您相当多的内容供您查看,但您确实需要花一点时间来检查您的代码。如果您放慢速度并阅读您正在做的事情,您有很多问题本来可以解决的。

关于Javascript 改变表单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54099294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com