JavaScript客户端函数不触发ASP自定义验证器
JavaScript client side function not firing for ASP custom validator
我有以下ASP CustomValidator:
<asp:CustomValidator ID="CustomValidator2" runat="server"
EnableClientScript="true" OnServerValidate="ins_server" ClientValidationFunction ="ins_client"
ErrorMessage="CustomValidator"> * Insurance dates not valid without supporting attached document</asp:CustomValidator>
以下c#服务器端函数:
protected void ins_server(object source, ServerValidateEventArgs args)
{
//new user
if (PageMode == PageModes.NewVessel)
{
if (fuAttachment.HasFile && datetimepickerinsend != null && datetimepickerinsstart != null)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}
//existing user
if (PageMode == PageModes.EditVessel)
{
args.IsValid = true;
}
}
以及以下客户端JavaScript函数存储在名为customfunctions.js的文件中:
//declerations
var insurancestart;
var insuranceend;
var filesattached;
function ins_client(sender, e) {
if (pagemode == 'EditVessel') {
e.IsValid = true;
}
if (pagemode == 'NewVessel') {
if (insurancestart !== '' && insuranceend !== '' && filesattached > 0) {
e.IsValid = true;
}
else {
e.IsValid = false;
}
}
}
我还在控件所在的ASPX页面中定义了以下全局变量:
<script type="text/javascript">
var pagemode;
$(document).ready(function () {
// removed var to give global scope
pagemode = '<%=this.PageMode.ToString()%>';
});
</script>
我的问题是我在服务器端函数上放置了一个断点,每当我单击提交按钮时,服务器端代码就会被调用并刷新页面。如果我在chrome中调试,我可以看到我所有的JS变量都有预期的值,似乎出于某种原因,客户端JS函数没有触发,而是掉到服务器端函数。
这里发生的事情正如@Justin-iurman指出的,当函数返回true
时,服务器端函数也将在客户端之后被调用。在我的情况下,虽然当我测试false
结果时,我仍然直接进入服务器端功能。
结果是按下F12在chrome和检查控制台,我有一个未定义的错误在我的JS代码。将有问题的函数移出专门用于此页面的函数并移到全局上下文中,为我整理了问题。
相关文章:
- Asp自定义验证器在IE-11中不起作用
- 向ASP控件添加自定义事件
- 如何将我的自定义时间选择器链接到我的asp.net
- 在带有 bootbox 的自定义对话框中添加选项以选择表单控件.js在 ASP.NET MVC 中
- ASP.net自定义控件,下拉值必须在服务器端填充,所选值在返回时丢失
- 使用CKEditor自定义文件浏览器,并使用ASP.Net MVC进行上传
- 如何将自定义字段添加到Json结果-ASP.NET MVC
- 当我点击一个asp表元素时,我如何制作一个自定义弹出窗口
- 如何在没有代码隐藏访问权限的情况下将自定义 HTML 属性添加到 ASP.NET 标签
- 从 JQuery 添加 asp.net 自定义用户控件
- ASP.NET 或Javascript库,用于在美国地图上以颜色绘制自定义零件
- asp.net Web API 405 方法不允许、发布、自定义操作
- asp.net ajaxtoolkit 自定义控件扩展器
- 使用 jQuery 和 asp.net Web 表单进行自定义确认
- ASP Html.BeginForm 多个提交按钮 - 添加没有 JQuery 的自定义确认
- ASP.NET 自定义控件,两个网格.需要一些建议
- ASP自定义控件-如何在JS/jQuery中获取子控件
- JavaScript客户端函数不触发ASP自定义验证器
- 使用ASP自定义设计模态框.. NET表单控件中的Bootstrap Fullcalendar
- ASP自定义日历控件在回发时消失