Пробовал так:
function isright(product_id, maximum) { var ns = +($('input[name=\'' + product_id + '\']').val().replace(/\D/g,''))||0; if (ns>maximum) ns=maximum; //if (ns<10) ns=10; $('input[name=\'' + product_id + '\']').val(ns) } Так: function isright(product_id, maximum) { var ns = +($('input[name=\'' + product_id + '\']').val().replace(/\D/g,''))||0; var ms = $('input[name=\'' + product_id + '\']').val(maximum); if (ns>ms) ns=ms; //if (ns<10) ns=10; $('input[name=\'' + product_id + '\']').val(ns) } Так: function isright(product_id, maximum) { var ns = +($('input[name=\'' + product_id + '\']').val().replace(/\D/g,''))||0; if (ns>$('input[name=\'' + product_id + '\']').val(maximum);) ns=$('input[name=\'' + product_id + '\']').val(maximum);; //if (ns<10) ns=10; $('input[name=\'' + product_id + '\']').val(ns) } Не получилось |
MixPetrov,
1 вариант должен работать |
Увы(
|
MixPetrov,
сложно ввести число, когда скрипт мешает ... но всё работает <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> function isright(product_id, maximum) { var ns = +($('input[name=\'' + product_id + '\']').val().replace(/\D/g,''))||0; if (ns>maximum) ns=maximum; //if (ns<10) ns=10; $('input[name=\'' + product_id + '\']').val(ns) } $(function() { isright(1,4) //test }); </script> </head> <body> <input name="1" oninput="isright(1,4);" size="2" value="89998мимими" maximum="4" type="text"> </body> </html> |
Работает замечательно, maximum срабатывает один для всех, а как передать этот параметр для конкретного inputa?
|
Цитата:
|
Понял, Огромное спасибо!!! Все работает!
|
Подскажите можно ли каким то образом через событие oninput получить в округление полное значение value?
в данном случае округление срабатывает, но каждая введенная цифра округляется отдельно. К примеру при вводе 11 получается 33 т.е. первая 1 округляется до 3 и вторая единица тоже округляется до 3. Через событие onchange работает правильно, но хотелось бы через oninput. <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> function mathC(nmb, rnd) { var ns = +$('input[name=\'' + nmb + '\']').val(); ns = ns || 0; ns = Math.ceil(ns/rnd)*rnd; $('input[name=\'' + nmb + '\']').val(ns) } $(function() { mathC(1,3) //test }); </script> </head> <body> <input name="1" oninput="mathC(1,3);" size="2" value="1" type="text"> </body> </html> |
MixPetrov,
можно ввести задержку, смотрите пост №6 |
Через файл *.js
$ (function () { function mathC(product_id, nmb){ var ns = +$('input[name=\'' + product_id + '\']').val(); ns = ns || 0; ns = Math.ceil(ns/nmb)*nmb; $('input[name=\'' + product_id + '\']').val(ns) } var timer; $('.quantity_cart [type="text"]').on("input", function() { window.clearTimeout(timer); timer = window.setTimeout(mathC.bind(this), 1200) }) }); Через *.php <script type="text/javascript"> $ (function() { $('.quantity_cart input[type="text"]').on("input", function() { var timer; window.clearTimeout(timer); timer = window.setTimeout(mathC.bind(this), 1200) }) }); </script> Не срабатывает |
Часовой пояс GMT +3, время: 13:28. |