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

如何用JavaScript实现表格双按钮切换及输入框显隐控制?

问题排查与修复方案

核心问题分析

  • jQuery选择器错误:通过ID选择元素时必须加#前缀,原代码里$('cloginbtn')这类写法会被当作标签名查找,根本找不到目标按钮和区域,导致样式切换、显示隐藏全失效。
  • 缺少目标DOM元素:HTML里没定义shortNameRow对应的输入区域,就算JS逻辑正确,也没有可操作的对象。

修复后的完整代码

JS代码

function clogin() {
  $('#vloginbtn').removeClass("selectedBtn");
  $('#cloginbtn').addClass("selectedBtn");
  $('#shortNameRow').show();
}

function vlogin() {
  $('#cloginbtn').removeClass("selectedBtn");
  $('#vloginbtn').addClass("selectedBtn");
  $('#shortNameRow').hide();
}

CSS代码

.selectedBtn {
  color: red;
}

HTML代码

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="buttons">
  <button id="cloginbtn" type="button" onclick="clogin()" class="switchBtn selectedBtn">CLIENT LOGIN</button>
  <button id="vloginbtn" type="button" onclick="vlogin()" class="switchBtn">VENDOR LOGIN</button>
</div>
<!-- 新增shortNameRow输入区域 -->
<div id="shortNameRow">
  <label>短名称:</label>
  <input type="text" placeholder="请输入短名称">
</div>

额外优化建议

如果不想用内联onclick,可以改成jQuery事件绑定,代码更整洁:

$(function() {
  $('#cloginbtn').click(function() {
    $('#vloginbtn').removeClass("selectedBtn");
    $(this).addClass("selectedBtn");
    $('#shortNameRow').show();
  });
  
  $('#vloginbtn').click(function() {
    $('#cloginbtn').removeClass("selectedBtn");
    $(this).addClass("selectedBtn");
    $('#shortNameRow').hide();
  });
});

对应的HTML里去掉按钮的onclick属性即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:20:33