我使用了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>
修改
我在页面上也有一些注释掉的字段,导致我在评论中提到的两个错误。当我删除这些字段时,它开始正常工作。但是我不确定为什么..注释掉的字段也会以与其他字段相同的方式呈现在页面上吗?
答案 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>
希望这可能会有所帮助!!