Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.02.2017, 12:08
Аспирант
Отправить личное сообщение для MixPetrov Посмотреть профиль Найти все сообщения от MixPetrov
 
Регистрация: 12.10.2016
Сообщений: 53

В чем ошибка
Значение через
$('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
}
Ответить с цитированием
  #2 (permalink)  
Старый 23.02.2017, 12:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

MixPetrov,
http://api.jquery.com/val/
Ответить с цитированием
  #3 (permalink)  
Старый 23.02.2017, 12:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

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) }

Последний раз редактировалось рони, 23.02.2017 в 12:44.
Ответить с цитированием
  #4 (permalink)  
Старый 23.02.2017, 12:37
Аспирант
Отправить личное сообщение для MixPetrov Посмотреть профиль Найти все сообщения от MixPetrov
 
Регистрация: 12.10.2016
Сообщений: 53

Спасибо огромное!
А вот почему происходит следующее: при вводе допустим 15 выпадает сразу 50.
Ответить с цитированием
  #5 (permalink)  
Старый 23.02.2017, 12:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

MixPetrov,
проверьте пост №3 снова
Ответить с цитированием
  #6 (permalink)  
Старый 23.02.2017, 12:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

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>
Ответить с цитированием
  #7 (permalink)  
Старый 23.02.2017, 13:04
Аспирант
Отправить личное сообщение для MixPetrov Посмотреть профиль Найти все сообщения от MixPetrov
 
Регистрация: 12.10.2016
Сообщений: 53

В общем проблема в том, не происходит сброс в валуе в ноль и автоматом считает что вводишь не 15, а 1015.
Но если убрать нижний предел то все отлично. Еще раз спасибо.
И еще маленький вопрос если в php в div class'e в value задать атрибут maximum передастся ли он параметром в функцию "function isright(product_id), maximum"?
Ответить с цитированием
  #8 (permalink)  
Старый 23.02.2017, 13:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

MixPetrov,
не понимаю, но лучше использовать input type=number c min и max
Ответить с цитированием
  #9 (permalink)  
Старый 23.02.2017, 13:34
Аспирант
Отправить личное сообщение для MixPetrov Посмотреть профиль Найти все сообщения от MixPetrov
 
Регистрация: 12.10.2016
Сообщений: 53

Лучше, но в данном случае надо через 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, 23.02.2017 в 14:01.
Ответить с цитированием
  #10 (permalink)  
Старый 23.02.2017, 13:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

MixPetrov,
да
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем ошибка применения функции borus Общие вопросы Javascript 5 19.09.2014 23:53
В чем ошибка при выводе таблицы? KamalovRadik Серверные языки и технологии 3 18.02.2012 14:30
$('[value=aaa bbb]') в чем ошибка?? iNfantry jQuery 2 31.01.2012 12:57
Ошибка вызова замыкания Андрей Параничев Общие вопросы Javascript 8 01.10.2008 21:16
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 15:22