我正在使用进度条和必填字段验证程序。但是当我点击提交按钮时。显示了进度条和验证器消息。 我的代码是
<script type="text/javascript">
function ShowDiv() {
setTimeout('document.getElementById("PB").style.display = "inline";', 500);
}
</script>
...
<asp:Button ID="btnSubmit" runat="server" Text="Submit" ValidationGroup="ValGrpSave" onclick="btnSubmit_Click" OnClientClick="ShowDiv()" />
...
<asp:TextBox ID="txtEmail1" Width="350px" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ValidationGroup="ValGrpSave" ErrorMessage="<b>Field Missing</b><br/>Issue no is Required" Display="None" ControlToValidate="txtEmail1" />
<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" TargetControlID="RequiredFieldValidator2" />
答案 0 :(得分:0)
问题是您没有阻止按钮启动表单提交,并且由于您的表单无效,验证程序会显示消息。
如果您的按钮只显示进度条,请尝试将脚本功能更改为此(由于它没有任何服务器端功能,因此更改非服务器按钮是一个不同的辩论,但让我们将其留给你):
function ShowDiv(evt) {
// display progress bar after half a second
setTimeout(function() {
document.getElementById("PB").style.display = "inline";
}, 500);
// prevent button click event propagation thus prevent form submission
evt.preventDefault();
return false;
}
我还更改了setTimeout
以提供函数而不是已弃用的字符串语句。
还可以更改按钮
<asp:Button ID="btnSubmit" runat="server" Text="Submit" ValidationGroup="ValGrpSave" onclick="btnSubmit_Click" OnClientClick="return ShowDiv();" />