jquery表单validation不允许用户名字段的空间?

我使用过http://bassistance.de/jquery-plugins/jquery-plugin-validation/

我的表单validation:

$("#form_person").validate({ rules: { username: { required: true, minlength: 2, maxlength:15 }, password: { required: true, minlength: 2 }, confirm_password: { required: true, minlength: 2, equalTo: "#password" }, email: { required: true, email: true } }, messages: { username: { required: "Please enter a username", maxlength:"max length 15 digits", minlength: "Your username must consist of at least 2 characters" }, password: { required: "Please provide a password", minlength: "Your password must be at least 5 characters long" }, confirm_password: { required: "Please provide a confirm password", minlength: "Your password must be at least 5 characters long", equalTo: "Please enter the same password as above" } }); 

有人帮我validation不允许用户名空间?

谢谢

你可以尝试这样的事情:

 $(document).ready(function(){ jQuery.validator.addMethod("noSpace", function(value, element) { return value.indexOf(" ") < 0 && value != ""; }, "No space please and don't leave it empty"); $("form").validate({ rules: { name: { noSpace: true } } }); }) 

快速演示
更多关于addMethod的信息
还有一个例子。

看看aditional方法 ,有一个nowhitespace规则。

我使用了@Reigel的答案,但它对我不起作用。

我改变了他的例子:

  $(document).ready(function(){ jQuery.validator.addMethod("noSpace", function(value, element) { return value == '' || value.trim().length != 0; }, "No space please and don't leave it empty"); $("form").validate({ rules: { name: { noSpace: true } } }); }) 

在我看来,noSpace不负责validation空TextBox(输入)。 如果输入了某些内容,则负责检查值。

如果你在其他JS文件中使用jQuery.validator.addMethod...并将这个JS文件添加到你的母版页或类似的东西,那将是个好主意。

我只是添加onfocusout事件并自动修剪所有表单字段,如果用户只输入空格(空格),它将删除它们并显示字段所需的消息:

 onfocusout: function (element, event) { //Get Objects $element = $(element); //Remove whitespace if ( $element.is(':input') && !$element.is(':password') ) { $element.val($.trim($element.val())); } }, 

它也可以在用户直接提交表单时工作,因为当他点击提交按钮时会触发事件。

像这样的例子:

  $('#username').keypress(function( e ) { if(e.which === 32) return false; }); 

从jquery-validation 1.15.0开始,更简洁的方法是使用normalizer回调:

 $( "#myform" ).validate( { rules: { field: { required: true, normalizer: function( value ) { return $.trim( value ); } } } } ); 

规范化器(不可变地)在validation发生之前转换该值。

有关详细信息,请参阅Normalizer文档 。

 $.validator.addMethod("validUsername", function (value, element) { return /^[a-zA-Z0-9_.-]+$/.test(value); }, "Please enter a valid username"); 

在validation中添加此方法

 $("form").validate({ rules: { name: { validUsername: true } } });