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 } } });