【发布时间】:2021-08-12 17:05:15
【问题描述】:
我在清除日期文本框时遇到问题。每当我回帖时,日期就会返回。我尝试了多种方法来清除主要调用内部库的日期控件的日期控件,添加一个清除服务器端的清除按钮。我还尝试使用相同的清除按钮使用 JavaScript 清除客户端。无论我使用什么方法,原始日期都会返回到框中。这会在保存页面时导致验证错误。
这是带有日期的原始框
如果我清除开始日期,它就会消失
当我清除结束日期时,开始日期返回
这就是我清除日期的方式
protected void ClearDate(object sender, EventArgs e)
{
this.Value = string.Empty;
}
点击后进入获取/设置值并运行以下代码
if (value == null || value == string.Empty)
{
_dateTextBox.Text = "";
if (ShowSeconds)
_timeTextBox.Text = "00:00:00";
else
_timeTextBox.Text = "00:00";
_altTextBox.Text = "";
_calExtender.SelectedDate = null;
}
问题是,当我更改一个日期框的值然后清除另一个日期框时,更改后的值返回到前一个值,它似乎与日历扩展器有关。似乎无论我经过多少次,日历扩展器都会保留原始值。
我也尝试使用 JavaScript 来执行此操作,但是 ID 不是完全在服务器端生成的,因此我只能获取其中的一部分,并且由于某种原因,如果我使用 guid 并将 id 生成设置为静态时每当页面回发它会更改 guid,这似乎会将日期文本框中的值恢复为原始值。
function clearDateTextBox(dateTextBoxId) {
document.getElementById(dateTextBoxId).value = "";
}
有没有人对如何从文本框中清除日期以保留回发有任何建议。我已经尝试在文本框上启用视图状态和禁用视图状态。
【问题讨论】:
标签: javascript c# asp.net date ascx