在jQueryValidatePlugin中,如何只验证必填字段是否为空(没有语法验证)?

在jQueryValidatePlugin中,如何只验证必填字段是否为空(没有语法验证)?,jquery,jquery-validate,Jquery,Jquery Validate,因为真正的验证应该并且正在服务器端进行,所以我只希望jQuery验证必填字段是否为空。所以我有这些默认值: jQuery.validator.setDefaults({ rules: { required: true, email: false // Experimental, does nothing? } }); 问题是jQuery验证插件仍然执行其他检查(如电子邮件语法),这与服务器端实现不同。如何关闭它们 据我所知,它们的设置属性,如:

因为真正的验证应该并且正在服务器端进行,所以我只希望jQuery验证必填字段是否为空。所以我有这些默认值:

  jQuery.validator.setDefaults({ 
    rules: {
      required: true,
      email: false // Experimental, does nothing?
    }
  });
问题是jQuery验证插件仍然执行其他检查(如电子邮件语法),这与服务器端实现不同。如何关闭它们


据我所知,它们的设置属性,如:
rules
email
rules
url
tofalse应该可以做到这一点。。。但显然不是吗

您的
.setDefaults()
方法中的对象文字对此插件没有意义

jQuery.validator.setDefaults({ 
    rules: {
        required: true,
        email: false // Experimental, does nothing?
    }
});
使用
规则
选项时,只能将规则分配给各个字段

rules: {
    myFieldName: { // <- this was missing
        required: true
    }
}
规则:{

myFieldName:{//正如Sparky在其回答中所述,由于在撰写本文时(1.13.1)的最新版本中未实现此功能,因此我在有文档记录的插件功能之外提供了几行代码来实现此功能。共享:

jQuery.validator.methods.email = function(){return true;}
jQuery.validator.methods.url = function(){return true;}
// Etc for each method you wish to disable
这段代码的作用是用一个始终返回
true
的自定义函数替换原始的验证方法。这样HTML5属性就可以保持不变,并且不需要在jQuery验证插件设置中为每个字段分配规则

这些自定义函数可以很容易地扩展,因此如果您仍然需要原始验证方法(例如,存储在变量中),可以选择调用它


干杯

重新评论,抱歉:您是说除了
必需的
(不必为每个字段执行此操作)之外,无法关闭所有验证规则吗?回答您关于我的方法的问题。我没有指定任何规则,这是默认情况下发生的,我正在尝试阻止它。我只需要检查必填字段是否为空。不,我不想要HTML5验证。而且我知道jQuery验证插件与服务器端验证无关(我已经构建了它),谢谢。我只想让jQuery验证插件检查必填字段是否为空。没有其他内容。@Alph.Dev,默认情况下怎么会发生这种情况?有东西告诉插件首先分配这些规则,这是你完全不想问的部分。没有什么遗漏。我有多个表单在JS中,只有问题描述中发布的代码+之后的这一行:
$('form').validate();
@Alph.Dev,您遗漏了相关的HTML。请解释jQuery验证插件如何可能知道将
电子邮件
规则分配给您的字段?@Alph.Dev,可能应该提到您正在使用HTML 5属性分配jQuery验证规则。答案是不要使用HTML 5属性。
type=“text”