CausesValidation = true无法正常工作

时间:2014-01-25 13:16:24

标签: c# asp.net validation

我使用了Requiredfieldvalidator来验证文本字段,但是当我点击按钮时,即使验证失败,页面也会被回发。我究竟做错了什么?以下是我的代码。

<div id="addFactDiv" style="display:none;">
     <asp:TextBox ID="inputFact" Height="50px" Width="100%" runat="server" TextMode="MultiLine" placeholder="Enter a fact"></asp:TextBox>
     <asp:requiredfieldvalidator CssClass="validator" Display="Dynamic" ID="Requiredfieldvalidator5" ControlToValidate="inputFact" ValidationGroup="ValidateFact" ErrorMessage="Please Enter a fact" runat="server"/>
     <input type="button" Class="cancel" value="Cancel" OnClick="hideInput('addFactDiv');" />
     <asp:Button ID="Submit_Fact" CssClass="submit" runat="server" CausesValidation="true" ValidationGroup="ValidateFact" Text="Submit" OnClick="Submit_Fact_Click"/>
</div>

修改

我在页面上也有一些注释掉的字段,导致我在评论中提到的两个错误。当我删除这些字段时,它开始正常工作。但是我不确定为什么..注释掉的字段也会以与其他字段相同的方式呈现在页面上吗?

1 个答案:

答案 0 :(得分:1)

我尝试了我的示例应用程序,发现以下错误,

WebForms UnobtrusiveValidationMode需要'jquery'的ScriptResourceMapping。请添加名为jquery的ScriptResourceMapping(区分大小写)。

后来我发现我们需要在.config文件中添加以下密钥,这解决了问题。 (我不确定为什么!)

参考:Link

我的aspx代码如下所示

<form id="form1" runat="server">
    <div>
        <div id="addFactDiv" style="float: right">
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        </div>
    </div>
    <p>
        <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="test" />
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"             ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator" ValidationGroup="test"></asp:RequiredFieldValidator>
    </p>
</form>

希望这可能会有所帮助!!