asp.net - 必需字段验证器 + 按钮 = 回发!

标签 asp.net postback requiredfieldvalidator

我有这个标记代码:

<div id="rowIndirizzo" class="form">
    <label>
        Indirizzo:</label>
    <asp:DropDownList ID="ddlToponimo" CssClass="indirizzo" runat="server" DataTextField="Toponimo"
        DataValueField="Toponimo">
    </asp:DropDownList>
    <asp:TextBox ID="txtStrada" CssClass="textinputStrada" runat="server"></asp:TextBox>
    <asp:TextBox ID="txtNumCivico" CssClass="textinputCivico" runat="server"></asp:TextBox>
</div>
<div id="divCap" class="form">
    <label>
        CAP:</label>
    <asp:TextBox ID="txtCAP" CssClass="textinputCAP" runat="server"></asp:TextBox>
</div>
<asp:RequiredFieldValidator ID="rfvToponimo" CssClass="errore2" runat="server" ControlToValidate="ddlToponimo"
    ErrorMessage="Il campo toponimo dell'indirizzo è obbligatorio." Display="Dynamic"
    ValidationGroup="Step4_StruttPrivata1Step" Style="color: Red; display: block !important;"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="rfvStrada" CssClass="errore2" runat="server" ControlToValidate="txtStrada"
    ErrorMessage="Il campo strada dell'indirizzo è obbligatorio." Display="Dynamic"
    ValidationGroup="Step4_StruttPrivata1Step" Style="color: Red; display: block !important;"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="rfvNumCivico" CssClass="errore2" runat="server" ControlToValidate="txtNumCivico"
    ErrorMessage="Il campo numero civico dell'indirizzo è obbligatorio." Display="Dynamic"
    ValidationGroup="Step4_StruttPrivata1Step" Style="color: Red; display: block !important;"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="rfvCAP" CssClass="errore2" runat="server" ControlToValidate="txtCAP"
    ErrorMessage="Il campo CAP è obbligatorio." Display="Dynamic" 
    ValidationGroup="Step4_StruttPrivata1Step" Style="color: Red;
    display: block !important;"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revCAP" runat="server" ControlToValidate="txtCAP"
    ValidationExpression="^([0-9]{5})$" ErrorMessage="Il formato del CAP è errato (Es. 01234)"
    Display="Dynamic" ValidationGroup="Step4_StruttPrivata1Step" Style="color: Red;
    display: block !important;" />
<asp:Button ID="btnSearchIndirizzo" OnClientClick="return false;" class="buttonnext" runat="server" Text="Inserisci"
    ValidationGroup="Step4_StruttPrivata1Step"></asp:Button>

我有一些控制来验证按钮单击,但我不想要回发(我不能使用输入按钮,因为不触发 rfv)。我尝试过 onclientclick 事件...但没有任何结果。

最佳答案

更新:我修改了 dummyFunction 代码以显式触发客户端验证并在页面无效时停止回发。

在按钮标记上尝试以下属性

UseSubmitBehavior = false

您可能也想尝试

OnClientClick = "return dummyFunction();"

然后有一个JS函数dummyFunction如

 function dummyFunction(){

//this command will explicitly fire the validation
    Page_ClientValidate();
    return Page_IsValid; //Page_IsValid is set to true or false depending on whether a page is valid or not after client validation
    }

关于asp.net - 必需字段验证器 + 按钮 = 回发!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5700932/

相关文章:

asp.net - 请告诉我如何在 javascript 中访问 gridview 单元格的值

c# - 单选按钮在回发时失去值(value)

javascript - 仅当在 HTML 表单中选择特定下拉列表时才需要该字段

asp.net - asp.net Web API 与发出 JSON 的 asp.net MVC Controller 的性能?

c# - Nhibernate和MVC3书籍

asp.net - 将 jQuery 引入 ASP.NET(或任何其他外部 JavaScript)的正确方法

jquery - 使用以下代码发送回服务器的字符串有多大?

forms - ASP.NET MVC-发布数据后如何重新加载相同的 View ?

.net - Asp net 验证错误消息从不显示

asp.net - ASP.NET-RequiredFieldValidator仅验证特定控件