针对空格的jquery验证问题

针对空格的jquery验证问题,jquery,validation,Jquery,Validation,我在使用jQuery和验证插件验证表单上的条目时遇到问题。条目必须为零或正数。我没有遇到过检测负数(或NaN)的问题,但我有过检测空条目或只有空格的条目的方法 有关守则: //WORKS //require positive numbers/floats $.validator.addMethod('requirePositiveNumber', function (value){ if ((isNaN(value)) || (value < 0) ){ return false;

我在使用jQuery和验证插件验证表单上的条目时遇到问题。条目必须为零或正数。我没有遇到过检测负数(或NaN)的问题,但我有过检测空条目或只有空格的条目的方法

有关守则:

//WORKS
//require positive numbers/floats
$.validator.addMethod('requirePositiveNumber', function (value){
if ((isNaN(value)) || (value < 0) ){
    return false;
}else{
   return true;
}
     }, "Please enter a positive amount"
);

//DOES NOT WORK
//require no spaces
$.validator.addMethod("noSpace",function(value,element)
{
    return this.optional(element) || /^[.\d]+/i.test(value);
},"no spaces please");

//DOESNT WORK EITHER
$.validator.addMethod("noSpace", function(value, element){
        if (value.indexOf(" ") < 0 && value !=""){
            return true;
        }else{
            return false;
        }
    }, "please enter a positive amount"
    );
//有效
//需要正数/浮点数
$.validator.addMethod('requirePostiveNumber',函数(值){
如果((isNaN(值))| |(值<0)){
返回false;
}否则{
返回true;
}
},“请输入正数”
);
//不起作用
//不需要空间
$.validator.addMethod(“noSpace”,函数(值,元素)
{
返回此.optional(元素)| |/^[.\d]+/i.test(值);
},“请不要留空格”);
//也不行
$.validator.addMethod(“noSpace”,函数(值,元素){
if(value.indexOf(“”<0&&value!=“”){
返回true;
}否则{
返回false;
}
},“请输入正数”
);
测试也不只是空白。

假设“myform”是表单的ID,“myfield”是字段的名称,这应该可以做到:

“IsPositeNumber”jQuery验证程序规则:

$.validator.addMethod("isPositiveNumber", function(value, element) {
    return this.optional(element) || /^[0-9.]+$/i.test(value);
}, "Please enter a positive amount");
验证脚本:

$("#myform").validate({
    rules: {
        myfield: { required: true, isPositiveNumber: true }
    },
    messages: {
        // Overwrite the default required message
        myfield: { required: 'Please enter a positive amount' }
    }
});

在字段上使用内置的
required:true
规则将阻止字段验证它是否为空或只是一堆空格。

谢谢,但不幸的是,这没有做到。它适用于除空或一系列空格以外的所有情况;当用户离开输入框时,其他所有内容都将触发验证。我在Firefox3.6和IE8中重复了这一点。我知道我在测试中做错了什么…但我不知道是什么。请查看我的最新回复。注意使用内置的
required:true
方法。这将阻止一个空字段或一堆空格进行验证,并用自定义方法输出的相同错误消息很好地进行伪装。我已经在本地进行了测试,效果很好。