jQuery获取日期后无法设置到modal中date类型输入框如何解决
问题根因
HTML 原生type="date"输入框仅支持YYYY-MM-DD格式的字符串作为有效值,你当前从表格获取的日期格式为DD-MM-YYYY,格式不匹配导致赋值失效。
解决方案
修改点击事件中的日期赋值逻辑,先转换格式再赋值:
$(document).ready(function () { $('.editbtn').on('click', function () { $('#editmodal').modal('show'); $tr = $(this).closest('tr'); var data = $tr.children("td").map(function () { return $(this).text(); }).get(); // 拆分原始日期 DD-MM-YYYY 转成 YYYY-MM-DD const dateArr = data[0].split('-'); const standardDate = `${dateArr[2]}-${dateArr[1]}-${dateArr[0]}`; $('#Bdate').val(standardDate); }); });
补充说明
- 如果你实际的原始日期格式为
MM-DD-YYYY,调整格式化的索引顺序即可:const standardDate = `${dateArr[2]}-${dateArr[0]}-${dateArr[1]}`; - 若担心模态框未完全渲染导致赋值失效,可将赋值逻辑放在模态框显示完成的回调中:
$('#editmodal').modal('show').on('shown.bs.modal', function () { const dateArr = data[0].split('-'); const standardDate = `${dateArr[2]}-${dateArr[1]}-${dateArr[0]}`; $('#Bdate').val(standardDate); })
内容的提问来源于stack exchange,提问作者TOP 10
相关产品推荐
相关产品推荐

