我喜欢根据标签的可见性在标签上添加验证,因为如果标签不可见,提交按钮会引发验证消息或错误。
我已经习惯了工具箱中的验证控件,它不允许使用此功能!
答案 0 :(得分:0)
似乎asp:Label的可见性设置为false,asp.net引擎甚至不会将它放在DOM中。因此,您可以使用(html)按钮的onclick
属性检查javascript,以检查标签是否在DOM中,并使用asp.net的__doPostBack()
javascript函数发回到服务器,如果它在那里:
<script type="text/javascript">
function testMe()
{
var lbl = document.getElementById('lblTest');
if(lbl == null)
document.getElementById('msg').innerHTML = "Error";
else
__doPostBack('testButton');
}
</script>
<asp:Label ID="lblTest" runat="server" Visible="false" Text="Hello"></asp:Label>
<button onclick="testMe();">test</button>
说实话,如果DOM中没有标签,我认为lbl
将是undefined
,但Firebug显示它实际上是null
。无论如何,需要注意的一点是,为了让asp.net定义__doPostBack()
方法,我相信你需要在autopostback="true"
的表单中进行一些控制,并且在代码隐藏中你可以检查导致Page_Load
方法中回发的原因如下:
if(Request.Form["__EVENTTARGET"] == "testButton") {}