You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:JavaScript函数点击按钮后无法显示消息

嘿,我来帮你排查下问题!

你的代码其实就几个小细节没处理对,咱们一步步捋清楚:

核心问题拆解

  • 操作input元素的方式错了:你用document.getElementById("name").innerHTML来操作输入框的内容,但<input>是自闭合标签,它的输入文本是存在value属性里的,innerHTML是用来修改元素内部的HTML内容,对输入框完全不适用哦。
  • 逻辑搞反了:你现在的代码是把greeting赋值给输入框,而不是把消息显示到右边的结果区域(.result)里,这当然看不到效果啦!
  • 变量声明不规范:greeting没加var/let/const,会不小心变成全局变量,虽然当前不影响功能,但这是容易踩坑的坏习惯。

修复后的完整代码

修正后的JavaScript

function calc() {
  // 规范声明变量
  const greeting = "hello";
  // 正确获取输入框的内容
  const userName = document.getElementById("name").value;
  // 把消息插入到结果展示区
  const resultArea = document.querySelector(".result");
  // 这里用+=是追加消息,要是想每次点击覆盖之前的,改成=就行
  resultArea.innerHTML += `<p>${greeting}, ${userName}!</p>`;
}

对应的HTML(只需要保证结果区域存在,其他不用改)

<header> 
  <p> BMI Calculator</p> 
</header>
<div class="grid">
  <div class="input">
    <form>
      <p> Fill in the form below</p>
      Name: <br>
      <input type="text" name="name" id="name"><br>
      Weight: <br>
      <input type="number" name="weight"><br>
      Height: <br>
      <input type="number" name="height"><br>
      <input type="radio" name="gender" value="female">Female
      <input type="radio" name="gender" value="male">Male
      <input type="radio" name="gender" value="other">Other<br>
      <br><input type="button" onclick="calc()" name="calculate" value="calculate">
    </form>
  </div>
  <div class="result">
    <p> Your Results</p>
  </div>
</div>

小提示

等你搞定这个显示消息的功能后,后续做BMI计算也很简单:只需要在calc函数里用同样的方式获取weight和height的value,然后用公式体重(kg) / (身高(m)的平方)计算,最后把结果插入到.result区域就好啦~

内容的提问来源于stack exchange,提问作者kriloots

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 20:22:32