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

jQuery使用const替换input属性值仅得到变量名的正确实现方式问询

问题原因
  • 变量被引号包裹:你在调用attr()方法时给dateObj加了单引号,JS会将其识别为普通字符串而非变量引用,最终属性值直接存储了变量名字符串。
  • 原生Date对象不符合格式要求:直接传入未格式化的Date对象,会被转为默认的完整日期字符串,无法匹配你需要的DD/MM/YYYY格式。
正确实现代码
const dateObj = new Date();
// 日期格式化工具:输出 DD/MM/YYYY 格式
const formatToLocalDate = (date) => {
  // 补前导零,确保日、月都是两位
  const day = String(date.getDate()).padStart(2, '0');
  const month = String(date.getMonth() + 1).padStart(2, '0'); // JS月份从0开始计数,需+1匹配实际月份
  const year = date.getFullYear();
  return `${day}/${month}/${year}`;
}
// 传入变量时不要加引号,直接传递格式化后的结果
jQuery("input[data-min-date='+1']").attr('data-disabled-dates', formatToLocalDate(dateObj)); 
扩展说明

如果需要设置多个禁用日期,只需要将多个格式化后的日期字符串用; 拼接后传入即可,示例:

const disabledDates = [
  new Date(2021, 11, 24),
  new Date(2021, 11, 25),
  new Date()
].map(date => formatToLocalDate(date)).join('; ');

jQuery("input[data-min-date='+1']").attr('data-disabled-dates', disabledDates);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:36:04