我目前正在 .net MVC4 中做一个项目,当在"编辑"表单中勾选复选框时,我需要用当前日期填充显示字段。
由于它是一个编辑表单复选框,可能已经被勾选了,我需要检查它是否在第一次被选中,然后我需要填充当前日期。
更新:
马特谢谢。我通过使用隐藏字段解决了这个问题。涉及的步骤:1. 将模型字段存储在编辑屏幕的隐藏字段中。 @Html.Hidden("hiddenDateField", Model.DateField) @Html.Hidden("hiddenCheckBox", Model.CheckBoxField)
- 然后使用JQuery我添加了以下逻辑。
$('#chkBox').on('click', function () { var myDate = new Date(); var displayDate = (myDate.getUTCDate()) + '/' +(myDate.getUTCMonth() + 1) + '/' + myDate.getUTCFullYear() + " " + myDate.getUTCHours() +":" + myDate.getUTCMinutes() +":"+myDate.getUTCSeconds();
if ($('#chkBox').is(":checked")) {
if ($('#hiddenCheckBox').val() == "False") { // This condition is to check if the user is selecting checkbox for 1st time by comparing with received model data value.
$('#lblDate').text(displayDate);
} else {
$('#lblDate').text($('#hiddenDateField').val()); // This condition is to restore the Date if user unticks and Select Checkbox again.
}
}
if (!$('#chkBox').is(":checked")) { // This when user unticks the checkbox and I replaced the date to empty char.
$('#lblDate').text("");
}
});
ajax,只需使用 jquery。 没有您的代码,很难给出示例,因此您需要更改它以匹配您的代码
$(document).ready(function(){
//this will check if checked on load and set the text box to now
if($('.chkClass').is(":checked")){
$('.txtClass').val($.now());
}
$('.chkClass').on('click', function(){
//check again so it only sets the date if they check and not uncheck
if($('.chkClass').is(":checked")){
$('.txtClass').val($.now());
}
});
});