【问题标题】:progress bar and requiredfieldvalidator进度条和必填字段验证器
【发布时间】:2012-07-10 08:26:52
【问题描述】:

我正在使用进度条和必填字段验证器。但是当我点击提交按钮时。进度条和验证器消息都显示了。 我的代码是

<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" />

【问题讨论】:

  • 您将需要更多信息。请提供更多信息。
  • 这是一个按钮:
  • 这是文本框控件:
  • Sumit,下次宁愿用其他信息编辑您的原始问题,而不是在评论中提供所有这些代码。好的?否则我们,社区,必须为你做这件事......

标签: javascript webforms validation


【解决方案1】:

问题在于您没有阻止按钮开始提交表单,并且由于您的表单无效,您的验证器会显示消息。

如果您的按钮应该只显示进度条,请尝试将您的脚本功能更改为此功能(将其更改为非服务器按钮是一个不同的争论,因为它没有任何服务器端功能,但让我们把它留给你):

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();" />

【讨论】:

  • 更改javascript函数的代码后我在这里遇到同样的问题
  • 我在这里遇到同样的问题,请建议我该怎么做
  • @SumitKumar:能否请您调试并检查是否发生回发到服务器?所以我们知道我们在哪里......
  • 我检查了回发发生
  • @SumitKumar:我已经编辑了我的答案,并对脚本和按钮控件进行了微小的更改。您可以应用这些更改并报告吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多