我已经制作了表单并添加了表单验证。这是我在ascx代码文件中使用输入字段的代码:
return Mono.zip(someService.getSomeData(), oneMoreService.getMoreData())
.map(t -> {
X data1 = t.getT1();
Y data2 = t.getT2();
MyObject myObject = new MyObject();
//...
return myObject;
});
在后面的代码中,我在<div class="form-group">
<label for="FirstName">
<asp:Localize ID="Localize5" runat="server" meta:resourcekey="fieldText" />
</label>
<asp:TextBox ID="myTextField" runat="server" CssClass="form-control" />
</div>
被解雇时执行此操作:
Me.Load
单击提交按钮时会出现问题:
myTextField.Attributes.Add("required", "required")
背后的代码
<button type="submit" class="btn btn-primary" runat="server" id="btnSumbit">
<asp:Localize ID="Localize24" runat="server" meta:resourcekey="submitText" />
</button>
此事件会阻止浏览器中的表单验证。因为它正在进行回发。这是呈现的HTML:
Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSumbit.ServerClick
Response.Redirect("https://stackoverflow.com")
End Sub
我只能在表单有效时使用回发?
答案 0 :(得分:0)
您可以在脚本标记或文件
中添加此代码var originalDoPostback = __doPostBack;
__doPostBack = function (p1, p2) {
if (document.querySelectorAll('input:invalid').length === 0) {
originalDoPostback(p1, p2);
}
};
这会将__doPostBack
更改为您的function(p1, p2) { /* code stuff */ }
。如果没有无效的输入字段,请执行原始回发_(名为originalDoPostback
),否则不执行任何操作。