在UpdatePanel中使用ClientValidationFunction (JavaScript)
Using ClientValidationFunction (JavaScript) in an UpdatePanel
我想确定为什么我的验证函数没有在我的web表单上被调用。我在MSDN上读了很多文章,最值得注意的是找到了这条金块。
根据这些知识,我修改了我的代码如下:当你在UpdatePanel控件中使用CustomValidator控件时,确保验证器控件及其关联的控件在同一个面板上。有关使用UpdatePanel的更多信息控件的部分页面更新,请参见部分页面呈现概述。
<asp:UpdatePanel ID="UpdatePanel0" runat="server">
<ContentTemplate>
<script type="text/javascript">
function IsNotChecked(obj, args) {
args.IsValid = false;
if (document.getElementByID("cbRegion0").checked)
{
args.IsValid = true; return true;
}
return false;
}
</script>
<asp:CheckBox ID="cbRegion0" runat="server" ValidationGroup="0" AutoPostBack="true" OnCheckedChanged="CheckBox_CheckedChanged" />
<asp:CustomValidator ID="CustomValidator0" runat="server" ValidationGroup="0" ClientValidationFunction="IsNotChecked" ErrorMessage="You did not check the box." ValidateEmptyText="True" />
</ContentTemplate>
</asp:UpdatePanel>
我遇到的问题是,当单击我的页面上的提交按钮时,验证例程不会执行。设计的一些独特元素是,上面的代码实际上是通过Control.Add()
添加到页面的。ascx内部,但我不知道这将如何影响ClientValidationFunction。我相信这与<script>
在表单内的位置有关,但尽管遵循MSDN的指示,它似乎并没有什么不同。谢谢你的建议!
UpdatePanel中的脚本将在异步回发后丢失。试着把你的IsNotChecked方法放在任何更新面板之外…或者,实现IScriptControl并将您的验证方法放入您创建的客户端脚本文件中,以伴随脚本控件…
我在如何获得ASP的客户端验证的Stack Overflow中找到了答案。网页要运行吗?讨论。抱歉没有早点看到。正如@Brian指出的那样,通过在我的代码中指定ValidationGroup="0"
,预期页面上的提交按钮具有相同的ValidationGroup分配。最后,我只是从指令中删除了属性,现在它调用JS。
我找到了答案,因为我正在浏览页面源代码,并注意到提交按钮正在调用javascript WebForm_OnSubmit()
方法,最终检查Page_ValidationActive
。
这让我想到了我刚才提到的问题。我希望这能帮助到其他人。谢谢!
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在Javascript中将JSon对象转换为数组
- Javascript生成的表单未提交
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量