我有两个a
元素。两者都打开了Bootstrap模式。这个a
元素用于创建一个全新的记录,因此它发送当前日期/时间:
<a style="color:#5cb85c" data-CreateDate="@DateTime.Now" data-toggle="modal" data-target="#OnPostModal" href="#OnPostModal" class="fas fa-plus-circle"></a>
另一个a
元素携带已经创建的记录中的一些字段,因此它会发送预先存在的创建日期
<a data-toggle="modal" data-target="#OnPostModal" data-CreateDate="@item.Supplier.CreateDate" href="#CallModal" class="fas fa-edit"> </a>
我使用一些JavaScript来填充弹出的模态上的一个字段:
<script type="text/javascript">
$('a[data-toggle=modal], button[data-toggle=modal]').click(function () {
var data_CreateDate = '';
if (typeof $(this).data('CreateDate') !== 'undefined') {
data_CreateDate = $(this).data('CreateDate');
}
$('#CreateDate').val(data_CreateDate);
})
</script>
最后,这是模态中需要填充的区域:
<div class="form-group">
<label asp-for="Supplier.CreateDate" class="control-label"></label>
<input asp-for="Supplier.CreateDate" id="CreateDate" class="form-control" />
<span asp-validation-for="Supplier.CreateDate" class="text-danger"></span>
</div>
此方法适用于字符串值,但似乎根本不适用于DateTime或Date值。我试过:
var data_CreateDate = new Date();
这行不通。
new Date()
返回一个对象。你想要一根绳子。多种格式可供选择:
const output = document.getElementById('output');
const d = new Date();
output.innerText = d.toString() + 'n';
output.innerText += d.toISOString() + 'n';
output.innerText += d.toGMTString() + 'n';
output.innerText += d.toLocaleDateString() + 'n';
output.innerText += d.toUTCString() + 'n';
<pre id="output"></pre>