2012-08-25 149 views
0

我是jquery的新手,目前jquery验证有问题。这里是我的代码:jquery验证问题

jQuery(function(){ 
       jQuery("#qty").validate({ 
        expression: "if (VAL) return true; else return false;", 
        message: "please enter buying amount" 
       }); 
       jQuery("#qty").validate({ 
        expression: "if (!isNaN(VAL)) return true; else return false;", 
        message: "Only integer is valid for amount" 
       }); 

       jQuery("#qty").validate({ 
        expression: "if (VAL > 0) return true; else return false;", 
        message: "At least buy 1 share" 
       }); 
       jQuery("#qty").validate({ 
        expression: "if (VAL <= jQuery('#division').val()) return true; else return false;", 
        message: "You have insufficient amount to purchase" 
       }); 

和其他相关部分:

<td><input type="text" name="quantity" size="10" id="qty" value=""/> 
<?php 
$division = $available/$rate; 
?> 

现在的问题是我无法检测的量输入是否是小数。如果是十进制,我想显示错误信息:只有整数对数量有效。而且,当我将数量输入与$ division进行比较时,无论输入的是什么正整数,它都会显示错误消息“您没有足够的金额购买”。任何人都可以给我一些建议吗?提前说声谢谢!

回答

0

您可以使用此方法来知道电话号码是不是小数

jQuery("#qty").validate({ 
    expression: "if (!isNaN(VAL) && (parseFloat(VAL)==parseInt(VAL))) return true; else return false;", 
    message: "Only integer is valid for amount" 
}); 

和比较的方面中诠释,即

jQuery("#qty").validate({ 
    expression: "if (parseInt(VAL, 10) <= parseInt(jQuery('#division').val(), 10)) return true; else return false;", 
    message: "You have insufficient amount to purchase" 
}); 

分析的价值,并防止领先0,你可以使用

jQuery("#qty").validate({ 
    expression: "if (VAL.substr(0,1) != '0') return true; else return false;", 
    message: "Leading zero is not allowed" 
}); 
+0

非常感谢!这对我有用!另一个问题是如何限制用户在数量输入的第一位输入“0”? – user1616230

+0

@ user1616230,我已经更新了我的回答。 –

+0

你再次感谢你。但还有另外一个问题,当我输入“01”,“001”或“0001”(只要所有数字都是零,除了最后一位数字),就会提示消息“前导零不被允许”。但是,当输入“011”,“0011”,“0111”(只要非零数字大于1)时,提示的错误消息为“仅整数对数量有效”。你能帮我解决这个问题吗?我是jquery的新手,我非常感谢你的帮助。非常感谢你如此如此 – user1616230