【发布时间】:2020-09-13 08:06:36
【问题描述】:
我正在处理一些遗留的内联 Web 表单代码。我添加了一个默认设置的复选框。问题是当复选框未选中时,提交表单时它仍会翻转为选中状态。每个人都没有页面事件处理程序。
在 JavaScript 中,如果我设置了一个警报,它会将值显示为空白,这在未选中复选框时是正确的。但是,提交表单时,复选框始终会恢复为选中状态。
标记:
<input type="hidden" id="inYard" name="inYard" runat="server" />
<input type='checkbox' id="excludeYard" name='excludeYard' onclick="CheckYardSelection()"
runat="server" />Include Items in Yard
JavaScript:
function CheckYardSelection()
{
var yardCheckbox = document.getElementById('excludeYard');
if (!yardCheckbox.checked)
document.getElementById('inYard').value = "";
else
document.getElementById('inYard').value = "Y";
}
C#:
<script runat="server">
...
if(!String.IsNullOrEmpty(Request.Form["inYard"]))
{
if (Request.Form["inYard"].ToString() == "Y")
{
excludeYard.Value = Request.Form["inYard"].ToString();
excludeYard.Checked = true;
}
}
...
</script>
【问题讨论】:
-
请告诉我们c#代码写在哪里?页面加载?
-
在脚本块中。就像我说的那样,每个人都没有页面事件处理程序。
-
您是否有特定的理由使用
input而不是asp:checkbox? -
它是遗留的内联代码,没有使用 ASP.NET 控件。
标签: javascript c# asp.net webforms inline-code