我需要在页面中对“保存”操作进行自定义验证。要求是,我需要显示警报,当我单击警报中的“确定”按钮时,不应回发我的页面。 这是我的代码。
function RedirectForSaveValidation(source,arguments) {
var StatusFlag = '';
StatusFlag = document.getElementById('<%= HiddenStatusFlag.ClientID%>');
if (StatusFlag == "F") {
alert("Selected student entry has been qualified for lead. Entry cannot be modified...!");
arguments.IsValid = false;
}
if (StatusFlag == "Q") {
alert("Selected student has been scheduled for interview/counselling. Entry cannot be modified...!");
arguments.IsValid = false;
}
if (StatusFlag == "S") {
alert("Selected student entry has been scheduled with interview/counselling. Entry cannot be modified...!");
arguments.IsValid = false;
}
if (StatusFlag == "I") {
alert("Selected student entry has been converted to Intake. Entry cannot be modified...!");
arguments.IsValid = false;
}
window.location.assign("EnquiryRegister.aspx");
}
我在按下按钮时调用此功能。
<asp:Button ID="btnSaveEnquiryRegister" runat="server" Text="Save Enquiry Register" CssClass="button" OnClick="btnSaveEnquiryRegister_Click" ValidationGroup="valEnquiry" OnClientClick="RedirectForSaveValidation();"/>
问题是,我没有收到任何警报,因为我已经指定并且我的页面被回发了。我错过了什么?
答案 0 :(得分:2)
解决此问题的正确方法是使用CustomValidator控件及其ClientValidationFunction属性。有了这个,您可以将客户端验证与ASP.NET验证功能集成。
查看MSDN文档中的示例。
希望它有所帮助!
此致
UROS
答案 1 :(得分:0)
您正在点击按钮时直接使用自定义验证功能。看看你在函数和OnClientClick中传递了两个参数,你没有传递参数。这个方法应该通过asp.net的CustomValidator控件来调用。
或者只是从方法中删除参数。使用不带参数的方法
答案 2 :(得分:0)
这不是实现自定义验证器查看此http://www.w3schools.com/aspnet/control_customvalidator.asp和http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_customvalidator的正确方法(告诉您如何正确执行此操作) 但是如果你想进行这样的验证,你必须在它无效的情况下返回false
所以验证函数应返回true(如果有效)或false 然后
<asp:Button ID="btnSaveEnquiryRegister" runat="server" Text="Save Enquiry Register" CssClass="button" OnClick="btnSaveEnquiryRegister_Click" ValidationGroup="valEnquiry" OnClientClick="return RedirectForSaveValidation();"/>
答案 3 :(得分:0)
var StatusFlag = '';
StatusFlag = document.getElementById('<%= HiddenStatusFlag.ClientID%>').value;
我错过了包含value属性,因此变量的值为空,导致验证程序失败。