Има 3 начина да го разрешите:
- Прехвърлете максимална информация към предния край
- Проверете, когато потребителят изпрати
- Асинхронна проверка на данни, като
Jquery
ajax
Прехвърляне на макс. информация към предния край
Просто поставихте вашата максимална информация в някаква скрита област и използвайте javascript, за да я получите и проверите.
function check(obj){
var max = obj.getAttribute("data-max");
if(parseInt(obj.value) > parseInt(max)){
alert("Amount out of max!");
}
}
<input name="amount" value="0" data-max="3" onkeyup="check(this);"/>
Но този начин не се препоръчва и трябва да се избягва, тъй като потребителите могат да получат вашите данни за съхранение чрез проверка на изходния код.
Проверете, когато потребителят изпрати
Проверете сумата с максимална стойност от страна на сървъра, което води до лошо потребителско изживяване.
Асинхронна проверка на данни
Това се препоръчва и използва най-вече, когато получават данни асинхронно. Можете да опитате jquery
.
Ако приемем, че вашият сървърен език е php
, можете да направите файл checkMax.php
:
<?
$amount = $_POST["amount"];
$item_id = $_POST["item_id "];
/* get your max data from database using item_id, then assign $max
...
*/
echo $amount > $max ? 1 : 0
След това можете да проверите сумата чрез jquery ajax.
<input name="amount" class="amount" data-id="1" value="0"/>
$(".amount").change(function(){
var amount = $(this).val();
var item_id = $(this).attr("data-id");
$.post("checkMax.php", {"amount": amount, "item_id": item_id}, function(data){
if(data == "1")alert("Amount out of Max!");
});
});