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

如何实现单选高亮a标签后点击按钮跳转对应href链接

实现代码

首先修正原有逻辑的两个问题:一是原选择器范围太大,会误修改提交按钮的样式;二是时间a标签默认点击会直接跳转,无法实现选完再提交的交互,最后补充提交跳转逻辑即可。

1. 修改Blade模板中时间标签的点击事件

给clicktime传入事件对象,方便后续阻止默认跳转,修改后循环部分的a标签代码如下:

@foreach($doctor->tuesday as $tuesday)
<a class="timing" id="{{$tuesday->id}}" onclick="clicktime({{$tuesday->id}}, event)" href="{{url('/')}}/fixschedule/{{$tuesday->id}}">
<span>{{date("g:i a",strtotime($tuesday->starttime))}}</span>
</a>
@endforeach

2. 替换原有JS逻辑

<script>
// 时间选中切换逻辑
function clicktime(id, e)
{
  e.preventDefault(); // 阻止a标签默认跳转
  // 仅清空时间选项的选中状态,不影响页面其他按钮
  $(".timing").removeClass("selected");
  // 给当前选中项加高亮样式
  $("#"+id).addClass("selected");
}

// 提交跳转逻辑
function submit()
{
  const selected = $(".timing.selected");
  // 未选时间时给出提示
  if(selected.length === 0){
    alert("请先选择预约时间段");
    return false;
  }
  // 跳转到选中时间对应的预约链接
  window.location.href = selected.attr("href");
}
</script>

逻辑说明

  • 样式切换只针对带timing类的时间选项,不会误改提交按钮的原有样式
  • 选中状态同一时间只会保留一个,符合单选要求
  • 未选时间直接点提交会弹出提示,不会出现空跳转
  • 选中后提交直接读取对应a标签的原生href属性,不用额外拼接地址,和后端渲染的链接完全一致,不会出现路由错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 19:01:18