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

如何根据路由传入EJS的变量值设置单选按钮选中状态?

问题:如何根据EJS变量设置单选按钮选中状态?

我发现用文本框显示从路由传入EJS的active变量非常简单,对应的代码如下:

<!-- Active Text Input-->
<div class="form-outline mb-4">
   <label for="active" class="form-label">Active</label>
   <input type="text" name="active" id="active" class="form-control" value="<%= active %>"/>
</div>

但由于active只能取“Yes”或“No”两个值,我更倾向于使用单选按钮,对应的代码如下:

<!-- Active Radio Button-->
<div class="form-outline mb-3" id="activeRadioButton">
   <label class="form-label">Make User Active?</label>
   <div class="activeUser">
      <input type="radio" id="activeYes" name="active" value="Yes">
      <label for="activeYes" class="form-label">Yes</label>
      <input type="radio" id="activeNo" name="active" value="No">
      <label for="activeNo" class="form-label">No</label>
   </div>
</div>

但我不清楚如何根据路由传入的值设置对应的单选按钮为选中状态,请问有解决方法吗?


解决方法

你可以通过EJS的条件判断,给匹配active值的单选按钮添加checked属性即可。具体修改如下:

<!-- Active Radio Button-->
<div class="form-outline mb-3" id="activeRadioButton">
   <label class="form-label">Make User Active?</label>
   <div class="activeUser">
      <input type="radio" id="activeYes" name="active" value="Yes" <%= active === 'Yes' ? 'checked' : '' %>>
      <label for="activeYes" class="form-label">Yes</label>
      <input type="radio" id="activeNo" name="active" value="No" <%= active === 'No' ? 'checked' : '' %>>
      <label for="activeNo" class="form-label">No</label>
   </div>
</div>

逻辑说明:

  • 当路由传入的active值为Yes时,<%= active === 'Yes' ? 'checked' : '' %>会输出checked,让“是”的单选按钮处于选中状态;
  • 当active值为No时,对应的“否”单选按钮会被自动选中;
  • 这种方式完全在EJS渲染阶段完成,不需要额外的前端JS处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:50:33