防止基于必填字段验证程序的多次保存点击



我有一个保存按钮,单击该按钮时会创建一个包含所有必填字段的新用户。如果多次单击,则会创建多个用户。我想做的是,单击保存按钮后,检查是否已验证所有必需字段验证器(又名:所有必填字段中都有数据(,一旦发生这种情况,我想禁用保存按钮。我面临的问题是我不知道如何在页面上的所有 RequiredFieldValidators 周围设置条件。此外,我的 SaveButton 已经调用了一个函数来清除所有"必需"标签,因此仍然需要这样做。

这是我的按钮

<asp:Button ID="cmdSubmit" CssClass="btn btn-success btn-xs filterbutton" Text="Save" runat="server" ValidationGroup="DemoSummary" CausesValidation="true" OnClientClick="ClearRequiredTag();" />

然后调用

function ClearRequiredTag() {
var list = document.all;
for (var i = 0; i < list.length; i++) {
list[i].setAttribute("RequiredTag", 'false');
}
}

然后,这是运行所有 RequiredFieldValidators 的地方。

到目前为止,我已经尝试过这个,但无济于事,因为 ClearRequiredTag(( 无论如何都会返回 true,所以我想要的是检查所有 RequiredFieldValidators。

<script>
$(document).ready(function () {
$("#<%=cmdSubmit.ClientID%>").click(function () {
if (ClearRequiredTag()) {
$("#<%=cmdSubmit.ClientID%>").hide();
}
else {
$("#<%=cmdSubmit.ClientID%>").show();
}
});
});
</script>

为了检查 RequiredTag 属性中的值,请使用此 jquery 选择器 https://api.jquery.com/attribute-equals-selector/选择具有 RequiredTag 属性的所有输入,然后使用 https://api.jquery.com/jquery.each/遍历它们并获取每个输入的 val((。如果它们都有值,请禁用提交按钮并继续。

最新更新