模态弹出窗口中的客户端验证?

时间:2010-10-01 17:04:06

标签: c# asp.net ajax

我有一个gridview / formview,主/细节关系正在进行中。

当我单击formview(项目模板)中的按钮时,我会显示一个ajaxcontroltoolkit模式弹出窗口。

在这个弹出窗口中有一个文本框(实际上有几个)。我要在解除弹出窗口之前验证此文本框中的数据(至少六位数,到目前为止,我正在使用正则表达式验证程序)。

验证器有效,但我仍然可以通过单击“确定”来关闭该表单。我想要做的是禁用弹出窗口上的确定按钮,直到数据良好。

我试过在javascript中摆弄一些东西,但是我无法使它工作,因为在formview中找到控件似乎存在一些问题。

有什么想法吗?

提前致谢。

1 个答案:

答案 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();
    }
}