Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   В чем ошибка (https://javascript.ru/forum/misc/67545-v-chem-oshibka.html)

MixPetrov 23.02.2017 14:10

Пробовал так:
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) }

Не получилось

рони 23.02.2017 14:22

MixPetrov,
1 вариант должен работать

MixPetrov 23.02.2017 14:27

Увы(

рони 23.02.2017 14:31

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>

MixPetrov 23.02.2017 14:47

Работает замечательно, maximum срабатывает один для всех, а как передать этот параметр для конкретного inputa?

рони 23.02.2017 15:16

Цитата:

Сообщение от MixPetrov
а как передать этот параметр для конкретного inputa?

строка 27 -- в чём проблема?

MixPetrov 23.02.2017 15:25

Понял, Огромное спасибо!!! Все работает!

MixPetrov 24.02.2017 11:18

Подскажите можно ли каким то образом через событие 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>

рони 24.02.2017 11:38

MixPetrov,
можно ввести задержку, смотрите пост №6

MixPetrov 24.02.2017 12:12

Через файл *.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.