Mil*_*lox 5 javascript asp.net validation
我想知道是否有办法将自定义函数连接到asp net客户端验证事件,因此每次验证都被任何控件触发时我都可以在客户端UI上做出一些魔术
我正在寻找拦截页面onvalidating事件的一般方法,而不是在导致回发的每个控件上设置它
感谢你们
编辑:
我最终得到了这个功能:(感谢@Kirk)
$(document).ready(function () {
$('form').submit(function () {
if (typeof Page_Validators != 'undefined') {
var errors = '';
$.each(Page_Validators, function () {
if (!this.isvalid) {
errors += this.errormessage + '\r\n';
}
});
if (errors.length > 0) {
Alert(errors);
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
要执行类似的操作,您可以将 OnClientClick 事件放置在提交按钮上或仅放置在常规表单提交事件上。
然后您可以将Client Validation Object Model与验证器控件一起使用。这实际上允许您验证您设置的每个验证控件。您可以从与页面相关的客户端检查几个值,请参阅http://msdn.microsoft.com/en-us/library/yb52a4x0.aspx#ClientSideValidation_ClientValidationObjectModel。
您可以使用属性引用每个控件isvalid。例如
<asp:Label id="lblZip" runat="server" Text="Zip Code:" />
<asp:TextBox id="txtZip" runat="server" /></asp:TextBox>
<asp:RegularExpressionValidator id="valZip" runat="server"
ControlToValidate="txtZip"
ErrorMessage="Invalid Zip Code"
ValidationExpression="[0-9]{5}" />
<script language=javascript>
// Call this function to do something
function txtZipOnChange() {
// Do nothing if client validation is not active
if (typeof(Page_Validators) == "undefined") return;
// Change the color of the label
lblZip.style.color = valZip.isvalid ? "Black" : "Red";
}
</script>
Run Code Online (Sandbox Code Playgroud)
您还可以使用客户端函数获取页面上的验证器数组Page_Validators。您还可以使用其他一些功能。
此外,您还可以使用ValidatorValidate(val)客户端功能强制对每一项进行单独检查,并ValidatorEnable(val, enable)根据您的逻辑要求启用或禁用验证器。
请查看http://msdn.microsoft.com/en-us/library/aa479045.aspx#aspplusvalid_clientside了解更多详细信息。
希望这能让您到达您需要去的地方。如果没有,请随时询问。
上一条评论
您可以使用onClientClick并附加 JavaScript 函数。http://msdn.microsoft.com/en-us/library/7ytf5t7k.aspx
如果你想使用 jQuery,你可以ClientIDMode更容易地找出控件 ID。
| 归档时间: |
|
| 查看次数: |
14166 次 |
| 最近记录: |