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

jQuery datepicker点击日历图标触发错误输入框如何解决

问题原因

你当前代码的问题出在日历图标的触发逻辑上:调用$(".datepicker").datepicker("show")会选中页面内所有带datepicker类的输入框触发日期选择器,默认会聚焦到最后一个匹配的输入框,所以会出现点击开始日期图标弹出结束日期选择器的问题。

修复方案

方案1:DOM相对定位(无需修改HTML结构)

直接替换原有.btn_calendar的点击事件代码即可,通过相对位置找到当前图标对应的输入框:

// 替换原来的$(".btn_calendar").click那段代码
$(".btn_calendar").click(function() {
  // 定位当前点击的图标前方紧邻的.datepicker输入框触发
  $(this).prev(".datepicker").datepicker("show");
});

方案2:ID关联(适配性更强,不受DOM结构变动影响)

先修改HTML部分,给输入框加专属ID,给图标加对应关联属性:

<td class="w40">
        <span class="date">
            <input type="text" id="startDate" class="input_date datepicker">
             <span class="icon btn_calendar" data-target="#startDate"></span>
             ~
             <input type="text" id="endDate" class="input_date datepicker">
             <span class="icon btn_calendar" data-target="#endDate"></span>
         </span>
      </td>

再修改点击事件逻辑:

$(".btn_calendar").click(function() {
  const targetInput = $(this).data("target");
  $(targetInput).datepicker("show");
});

内容的提问来源于stack exchange,提问作者안제원

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:48:04