【问题标题】:Required field validator gets fired on PostBack必填字段验证器在 PostBack 上被触发
【发布时间】:2013-09-17 09:52:28
【问题描述】:

有一个文本区域正在由必填字段验证器进行验证。

<textarea style="width: 380px" id="txtAdditonalEmail" runat="server" rows="5"></textarea>
<asp:RequiredFieldValidator ID="rfvAdditonal" runat="server" ControlToValidate="txtAdditonalEmail" 
ErrorMessage="Atleast one additonal email is required"  ForeColor="Red" ValidationGroup="vldRequest"></asp:RequiredFieldValidator>

还有一个文件上传控件,我通过它处理文件。文件上传有一个客户端 OnChange 事件,该事件正在验证文件扩展名,而不是回发以读取文件。

<asp:FileUpload ID="fluCsr" runat="server"  />

OnChange Javascript:

function ValidateFileUpload() {
            var fuData = document.getElementById('<%= fluCsr.ClientID %>');
            var FileUploadPath = fuData.value;
            var Extension = FileUploadPath.substring(FileUploadPath.lastIndexOf('.') + 1).toLowerCase();
            var lblMsg = $("#<%= lblMsg.ClientID %>");
            var btnRead = $("#<%=txtComments.ClientID %>");

            if (Extension != "txt" && Extension != "csr" && Extension != "pem") {
                if (lblMsg != null && btnRead != null) {
                    lblMsg.show();
                }
            }
            else {
                lblMsg.hide();
                this.$("#form1").submit();
            }

        }

回发后文件被读取,但必填字段验证器被触发?在此回发期间如何阻止这种情况?

【问题讨论】:

  • Required field validation is fired? 是什么意思你的意思是验证是在服务器端触发的吗?请也分享您的服务器端代码
  • 表示服务器端处理完成后,在浏览器中显示必填字段消息......

标签: javascript asp.net validation


【解决方案1】:

您必须编写自定义验证器以跳过服务器端验证。

【讨论】:

  • 您可以轻松扩展 js 函数 ValidateFileUpload() 以包含对 txtAdditonalEmail 值的检查。
  • msdn.microsoft.com/en-us/library/… 。它有一个很好的例子。您可以轻松省略服务器端事件处理程序,仅在客户端执行检查。
【解决方案2】:

我认为问题出在&lt;textarea&gt; 控制上。你需要使用&lt;asp:TextBox TextMode="MultiLine"&gt;控件。

这里是参考链接...

TextArea with Required Field Validator

【讨论】:

  • 它与文本区域无关...甚至文本框也具有相同的行为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-23
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多