我有一个包含多个字段的表单,我正在使用JörnZaeffere的优秀jQuery Validation插件验证(其中一些字段添加了用于自定义验证的方法).如何规避使用指定的提交控件进行验证(换句话说,使用一些提交输入进行激活验证,但不要与其他人一起激活验证)?这与使用标准ASP.NET验证器控件的ValidationGroup类似.
我的情况:
它与ASP.NET WebForms有关,但如果您愿意,可以忽略它.但是,我更多地使用验证作为"推荐":换句话说,当提交表单时,验证会触发,而不是显示"必需"消息,"推荐"会显示"你推荐"的内容错过了以下领域....你还想继续吗?" 在错误容器中的那一点,现在可以看到另一个提交按钮,可以按下该按钮,忽略验证并提交.如何规避此按钮控件的表单.validate()并仍然发布?
在http://jquery.bassistance.de/validate/demo/multipart/上购买和出售房屋样本允许这样做以便点击之前的链接,但它通过创建自定义方法并将其添加到验证器来实现.我宁愿不必创建自定义方法复制验证插件中已有的功能.
以下是我现在所获得的立即适用脚本的缩短版本:
var container = $("#<%= Form.ClientID %> div.validationSuggestion");
$('#<%= Form.ClientID %>').validate({
errorContainer: container,
errorLabelContainer: $("ul",container),
rules: {
<%= YesNo.UniqueID %>: { required: true },
<%= ShortText.UniqueID %>: { required: true } // etc.
},
messages: {
<%= YesNo.UniqueID %>: 'A message.',
<%= ShortText.UniqueID %>: 'Another message.' // etc.
},
highlight: function(element, errorClass) {
$(element).addClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").removeClass("valid");
},
unhighlight: function(element, errorClass) {
$(element).removeClass(errorClass);
$(element.form).find("label[for=" …Run Code Online (Sandbox Code Playgroud) 问题是,验证摘要消息(警报)显示两次.我无法弄清楚原因.
请帮忙.这是代码
function validate() //javascript function
{
if (typeof(Page_ClientValidate) == 'function')
{
var isPageValid = Page_ClientValidate();
if(isPageValid)
{
}
}
}
<asp:Button ID="btn1" runat="server" OnClientClick="validate()" Text="button"
ValidationGroup="ContactGroup" />
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="List"
ShowMessageBox="true" ShowSummary="false" ValidationGroup="ContactGroup" />
Run Code Online (Sandbox Code Playgroud) 我想运行任何客户端验证例程连接到特定的文本输入元素.
已使用CustomValidator以下方式设置验证:
<asp:textbox id="AddEstTime" runat="server" Width="55px"></asp:textbox><br />
<asp:CustomValidator ID="AddEstTimeCustomValidator" ClientValidationFunction="AddEstTimeCustomValidator_ClientValidate" OnServerValidate="AddEstTimeCustomValidator_ServerValidate" ErrorMessage="Please enter a time" ControlToValidate="AddEstTime" runat="server" Display="Dynamic" ValidateEmptyText="true"/>
<asp:CheckBox ID="AddIsTM" runat="server" Text="T&M" />
Run Code Online (Sandbox Code Playgroud)
和javascript:
function AddEstTimeCustomValidator_ClientValidate(sender, args) {
var checkbox = $("input[id$='IsTM']");
args.IsValid = checkbox.is(":checked") || args.Value.match(/^\d+$/);
}
Run Code Online (Sandbox Code Playgroud)
当CheckBox"AddIsTM"状态的变化,我想重新验证textbox"AddEstTime",利用其钩取CustomValidator"AddEstTimeCustomValidator".
我知道焦点 - >添加一个字符重新聚焦 - >删除字符.我想找到一个更正确的方法.asp.net新手.