我有一个gridview / formview,主/细节关系正在进行中。
当我单击formview(项目模板)中的按钮时,我会显示一个ajaxcontroltoolkit模式弹出窗口。
在这个弹出窗口中有一个文本框(实际上有几个)。我要在解除弹出窗口之前验证此文本框中的数据(至少六位数,到目前为止,我正在使用正则表达式验证程序)。
验证器有效,但我仍然可以通过单击“确定”来关闭该表单。我想要做的是禁用弹出窗口上的确定按钮,直到数据良好。
我试过在javascript中摆弄一些东西,但是我无法使它工作,因为在formview中找到控件似乎存在一些问题。
有什么想法吗?
提前致谢。
答案 0 :(得分:3)
没有回发
您应该能够在JavaScript中使用以下技术找到控件:
$document.getElementById('<%=btnSubmitForm.ClientID%>').disabled = true;
如果你正在使用RegularExpressionValidator,这个论坛会建议一种快速(虽然是hacky)方式来检查你的表单是否有效,而不进行回发: http://forums.asp.net/t/1114240.aspx
使用回发
您可以将Submit按钮放在它自己的UpdatePanel中(如果它不在一个中),并在后面的代码中启用/禁用它,具体取决于验证器的IsValid属性的值。
如果您无法启用启用/禁用功能,则只需将模态保持打开状态,这样用户就无法关闭它,直到输入有效输入或单击取消:
protected void BtnSubmitClick(object sender, EventArgs e)
{
if (!regexValidator.IsValid)
{
modalPopupExtender.Show();
}
}