Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.02.2018, 16:09
Новичок на форуме
Отправить личное сообщение для Arthur4400 Посмотреть профиль Найти все сообщения от Arthur4400
 
Регистрация: 12.02.2018
Сообщений: 9

Не работает .onclick = function () в EI
Здравствуйте, не могу понять как сделать что бы значение с input type="number" отображалось на input type="range", и наоборот..Хотя в этом примере кода с input type="number" в input type="range" записывает, а наоборот нет...
<form>
    <p>Пакет стандарт <input id="standart" type="number" readonly value="7000"> грн./30 дней</p>
    <p>По умолчанию включает в себя 100 товаров и 100 сайтов!</p>
 
    <p>Количество товаров <input id="product" type="number" value="" min="0" placeholder="Количество товаров" onkeyup="addition();"> </p>
    <input id="product_scrol" type="range" min="0" max="300" step="1" value="0">
 
    <p>Количество сфйтов <input id="site" type="number" value="" min="0" placeholder="Количество сайтов" onkeyup="addition();"> </p>
    <input id="site_scrol" type="range" min="0" max="300" step="1" value="0">
 
    <p> Весь рынок <input  id="market" type="checkbox" value=""> 3000 грн.</p>
    <p>Иследуеться весь рынок! </p>
 
    <p>Рассылка о нарушениях <input  id="dispatch" type="checkbox" value=""> 2000грн. </p>
</form>
  
<div id="result"></div> <!--Блок вывода результата-->

<script>
function addition() {
    var standart = parseInt(document.getElementById('standart').value);//Пакет стандарт
    var product = parseInt(document.getElementById('product').value);//Количество товаров
    var site = parseInt(document.getElementById('site').value);//Количество сфйтов
    var market = parseInt(document.getElementById('market').value);//Услуга весь рынок
    var dispatch = parseInt(document.getElementById('dispatch').value);//Рассылка о нарушениях
 
    if (isNaN(standart) === true) standart = 0;
    if (isNaN(product) === true) product = 0;
    if (isNaN(site) === true) site = 0;
    if (isNaN(market) === true) market = 0;
    if (isNaN(dispatch) === true) dispatch = 0;
 
    var summ_market = product * 10; //сумма Количество товаров
    var summ_site = site * 50; //сумма Количество сфйтов
    var c = standart + summ_market + summ_site + market + dispatch; // подсчет всей суммы
 
    //ползунки
    if (document.getElementById('product').value > 0 ){
        document.getElementById('product_scrol').value = document.getElementById('product').value;    
    }
    if (document.getElementById('site').value != '') {
        document.getElementById('site_scrol').value = document.getElementById('site').value;
    }else{
        document.getElementById('site_scrol').value = 0;
    }
    //ползунки
    document.getElementById('market').checked = document.getElementById('market').value;// если включена услуга весь рынок
    document.getElementById('dispatch').checked = document.getElementById('dispatch').value;// если включена рассылка о нарушениях
    document.getElementById('result').innerHTML = " = " + c; // вывод конечной сумы
       //вывод суммы
}
document.getElementById('market').onclick = function () {
    if (this.checked) {
        document.getElementById('market').value = 3000;
        document.getElementById('site').value = "";
        document.getElementById('site').placeholder = "Все сайты";           //неактивное поле сыйты
        document.getElementById('site').disabled = true;
    }
    else {                                                                      // если выключена услуга весь рынок
        document.getElementById('market').value = '';
        document.getElementById('site').disabled = false;                                     // активация полей товары, сайты
        document.getElementById('site').placeholder = "Количество сайтов";
        document.getElementById('product').placeholder = "Количество товаров";
        document.getElementById('product').disabled = false; 
    }   
    addition();
};
     
document.getElementById('dispatch').onclick = function () {
    if (this.checked) {
        document.getElementById('dispatch').value = 2000;
    }
    else document.getElementById('dispatch').value = '';                    // если выключена рассылка о нарушениях
    addition();
};
</script>

Последний раз редактировалось Arthur4400, 13.02.2018 в 14:24.
Ответить с цитированием
  #2 (permalink)  
Старый 12.02.2018, 16:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Arthur4400
Если может нужно больше кода то скину....
Нужно сделать полный тестовый пример и оформить его тут.
Как это сделать объясняется тут.
Ответить с цитированием
  #3 (permalink)  
Старый 12.02.2018, 16:27
Новичок на форуме
Отправить личное сообщение для Arthur4400 Посмотреть профиль Найти все сообщения от Arthur4400
 
Регистрация: 12.02.2018
Сообщений: 9

Спасибо, изменил
Ответить с цитированием
  #4 (permalink)  
Старый 12.02.2018, 17:44
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

Arthur4400,
попробуйте так:
<form>
	<p>Пакет стандарт <input id="standart" type="number" readonly value="7000"> грн./30 дней</p>
	<p>По умолчанию включает в себя 100 товаров и 100 сайтов!</p>

	<p>Количество товаров <input id="product" type="number" value="" min="0" placeholder="Количество товаров" onkeyup="addition();"> </p>
	<input id="product_scrol" type="range" min="0" max="300" step="1" value="0">

	<p>Количество сфйтов <input id="site" type="number" value="" min="0" placeholder="Количество сайтов" onkeyup="addition();"> </p>
	<input id="site_scrol" type="range" min="0" max="300" step="1" value="0">

	<p> Весь рынок <input  id="market" type="checkbox" value=""> 3000 грн.</p>
	<p>Иследуеться весь рынок! </p>

	<p>Рассылка о нарушениях <input  id="dispatch" type="checkbox" value=""> 2000грн. </p>
</form>
 
<div id="result"></div> <!--Блок вывода результата-->
<script>
function addition() {
    var standart = parseInt(document.getElementById('standart').value);//Пакет стандарт
    var product = parseInt(document.getElementById('product').value);//Количество товаров
    var site = parseInt(document.getElementById('site').value);//Количество сфйтов
    var market = parseInt(document.getElementById('market').value);//Услуга весь рынок
    var dispatch = parseInt(document.getElementById('dispatch').value);//Рассылка о нарушениях

    if (isNaN(standart) === true) standart = 0;
    if (isNaN(product) === true) product = 0;
    if (isNaN(site) === true) site = 0;
    if (isNaN(market) === true) market = 0;
    if (isNaN(dispatch) === true) dispatch = 0;

    var summ_market = product * 10; //сумма Количество товаров
    var summ_site = site * 50; //сумма Количество сфйтов
    var c = standart + summ_market + summ_site + market + dispatch; // подсчет всей суммы

    //скролы
   // if (document.getElementById('product').value > 0 ){
        document.getElementById('product_scrol').value = document.getElementById('product').value;     
   // }
    if (document.getElementById('site').value != '') {
        document.getElementById('site_scrol').value = document.getElementById('site').value;
    }else{
		document.getElementById('site_scrol').value = 0;
	}
    //скролы
    document.getElementById('market').checked = document.getElementById('market').value;// если включена услуга весь рынок
	document.getElementById('dispatch').checked = document.getElementById('dispatch').value;// если включена рассылка о нарушениях
    document.getElementById('result').innerHTML = " = " + c; // вывод конечной сумы
       //вывод суммы
}
document.getElementById('market').onclick = function () {
	if (this.checked) {
		document.getElementById('market').value = 3000;
		document.getElementById('site').value = "";
		document.getElementById('site').placeholder = "Все сайты";           //неактивное поле сыйты
		document.getElementById('site').disabled = true;
	}
	else {                                                                      // если выключена услуга весь рынок
		document.getElementById('market').value = '';
		document.getElementById('site').disabled = false;                                     // активация полей товары, сайты
		document.getElementById('site').placeholder = "Количество сайтов";
		document.getElementById('product').placeholder = "Количество товаров";
		document.getElementById('product').disabled = false;  
	}    
	addition();
};
    
document.getElementById('dispatch').onclick = function () {
	if (this.checked) {
		document.getElementById('dispatch').value = 2000; 
	}
	else document.getElementById('dispatch').value = '';                    // если выключена рассылка о нарушениях
	addition(); 
};
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 13.02.2018, 14:15
Новичок на форуме
Отправить личное сообщение для Arthur4400 Посмотреть профиль Найти все сообщения от Arthur4400
 
Регистрация: 12.02.2018
Сообщений: 9

спасибо, работает !!! ну вот есть еще один вопрос когда ввожу в inpun число в input=range отображается, а если сдвинуть input=range, то в input ничего не меняеться...
Ответить с цитированием
  #6 (permalink)  
Старый 13.02.2018, 14:23
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

у input=range нет обработчиков.
Ответить с цитированием
  #7 (permalink)  
Старый 13.02.2018, 15:09
Новичок на форуме
Отправить личное сообщение для Arthur4400 Посмотреть профиль Найти все сообщения от Arthur4400
 
Регистрация: 12.02.2018
Сообщений: 9

Сообщение от Manyasha
попробуйте так
Извиняюсь конечно, я тупой наверное... но когда все в одном файле работает а когда в разных файлах то ни в каком браузере на чекбоксы вообще не реагирует... нужно наверное в input checkbox добавить обращение к нужной функции...ток не знаю как правильно
Ответить с цитированием
  #8 (permalink)  
Старый 13.02.2018, 15:21
Новичок на форуме
Отправить личное сообщение для Arthur4400 Посмотреть профиль Найти все сообщения от Arthur4400
 
Регистрация: 12.02.2018
Сообщений: 9

Сообщение от j0hnik Посмотреть сообщение
у input=range нет обработчиков.
А что в обработчик написать?
Ответить с цитированием
  #9 (permalink)  
Старый 13.02.2018, 15:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Arthur4400
когда все в одном файле работает а когда в разных файлах то ни в каком браузере на чекбоксы вообще не реагирует
Наверное не в том месте подключаешь js-файл... Или УРЛ ему не верный пишешь...
Ответить с цитированием
  #10 (permalink)  
Старый 13.02.2018, 15:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Arthur4400
нужно наверное в input checkbox добавить обращение к нужной функции...ток не знаю как правильно
Учебники читать нужно для этого...
https://learn.javascript.ru/introduction-browser-events
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создается function Function(){} ? Cepairda Общие вопросы Javascript 0 10.02.2016 15:03
Присвоить значение hidden и -200% когда div закрыт xrror Элементы интерфейса 0 20.09.2013 16:47
document.getelementbyid().<сабития> = function .... не работает dadli Общие вопросы Javascript 2 26.03.2012 10:09
Object.predefinedProperties создает новый объект с назначенными getter'ами/setter'ами devote Ваши сайты и скрипты 13 06.03.2012 21:57
Не работает myFn = function() revolllver Элементы интерфейса 10 06.03.2012 16:22