2012-08-25 176 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