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

点击图标唤起日期选择器后,如何保存并获取选中值?

解决AUI日期选择器无法获取选中值的问题

嘿,我看你已经成功唤起AUI的日期选择器了,但拿不到选中的值对吧?这是因为AUI的datePicker组件默认不会直接把值绑定到你点击的<span>元素上——毕竟span不是表单控件,val()方法对它根本不起作用。咱们来调整一下代码就能搞定:

1. 先添加一个隐藏的input存储日期值

首先修改你的UI代码,增加一个隐藏的input元素,专门用来存选中的日期:

<input type="hidden" id="selected-delete-date" />
<span class="aui-icon aui-icon-small aui-iconfont-configure aui-date-picker" id="edit-delete-date" style="cursor: pointer">Configure</span>

2. 通过onSelect回调捕获选中值并保存

然后调整JavaScript代码,给datePicker配置onSelect回调函数,当用户选中日期时,把值存入隐藏input,之后就能随时从这个input里读取啦:

// 初始化日期选择器并绑定选择事件
AJS.$('#edit-delete-date').datePicker({
    'overrideBrowserDefault': true,
    onSelect: function(dateText) {
        // 将选中的日期文本存入隐藏input
        AJS.$('#selected-delete-date').val(dateText);
        // 这里可以直接处理选中的值,比如打印或者提交到后端
        console.log("选中的日期:" + dateText);
    }
});

// 后续如果需要获取保存好的值,直接从隐藏input取值即可
// var savedDate = AJS.$('#selected-delete-date').val();
// console.log("已保存的日期:" + savedDate);

为什么之前的代码不行?

你原来的代码里,初始化datePicker后立即调用val(),这时候用户还没选择任何日期,而且<span>本身没有value属性,自然拿不到值。必须通过onSelect事件监听用户的选择动作,才能捕获到选中的日期,再把它存到合适的地方(比如隐藏input)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:51:19