|
В чем ошибка
Значение через
$('input[name=\'' + product_id + '\']').val()получается, а вот изменение и подстановка не нового значения в value не выполняется. function isright(product_id) { var ns = $('input[name=\'' + product_id + '\']').val().value.replace(/\D/g,'')||0; if (ns>50) ns=$('input[name=\'' + product_id + '\']').val(50); if (ns<10) ns=$('input[name=\'' + product_id + '\']').val(10); $('input[name=\'' + product_id + '\']').val() = ns } |
MixPetrov,
http://api.jquery.com/val/ |
MixPetrov,
:( function isright(product_id) { var ns = +($('input[name=\'' + product_id + '\']').val().replace(/\D/g,''))||0; if (ns>50) ns=50; if (ns<10) ns=10; $('input[name=\'' + product_id + '\']').val(ns) } |
Спасибо огромное!
А вот почему происходит следующее: при вводе допустим 15 выпадает сразу 50. |
MixPetrov,
проверьте пост №3 снова |
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() { function isright() { var ns = +this.value.replace(/\D/g, "") || 0; if (ns > 50) ns = 50; if (ns < 10) ns = 10; this.value = ns } var timer; $(".num").on("input", function() { window.clearTimeout(timer); timer = window.setTimeout(isright.bind(this), 1200) }) }); </script> </head> <body> <input class="num"> <input class="num"> </body> </html> |
В общем проблема в том, не происходит сброс в валуе в ноль и автоматом считает что вводишь не 15, а 1015.
Но если убрать нижний предел то все отлично. Еще раз спасибо. И еще маленький вопрос если в php в div class'e в value задать атрибут maximum передастся ли он параметром в функцию "function isright(product_id), maximum"? |
MixPetrov,
не понимаю, но лучше использовать input type=number c min и max |
Лучше, но в данном случае надо через input type=text.
По "И еще маленький вопрос...." Сам input <input name="1" oninput="isright(1); recalc(1);" size="2" value="1" maximum="4" type="text"> <input name="2" oninput="isright(2); recalc(2);" size="2" value="1" maximum="125" type="text"> <input name="3" oninput="isright(3); recalc(3);" size="2" value="1" maximum="76" type="text"> maximum="4" = maximum="<?php echo $product['quantity']; ?>" Предастся ли maximum="4" в код js через параметр функции "function isright(product_id, maximum) {...} ? Или как передать значение maximum? |
MixPetrov,
да |
Часовой пояс GMT +3, время: 17:13. |
|