Пробовал так:
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, время: 02:08. |