Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539

Автосуммирование из input.value

08.04.2018, 14:43. Показов 1021. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
В коде всплывающее окно "форма заказа".
HTML5
1
2
3
4
5
6
7
8
<div class="row">
            <label for="fromDate">Дату въезда:</label>
            <input type="text" class="form-control" id="fromDate" name="fromDate" readonly>
</div>
<div class="row">
            <label for="toDate">Дата выезда:</label>
            <input type="text" class="form-control" id="toDate" name="toDate" required readonly onclick="toDate()">
</div>
В ней два input в которые вставляется выбранная дата используя datapicker
JavaScript
1
2
3
4
$( function() {
    $( "#fromDate" ).datepicker();
    $( "#toDate" ).datepicker();
  } );
Третий input куда хочу вставлять количество дней из выбранных дат.
HTML5
1
2
3
4
<div class="row">
            <label for="allDay">Количество дней:</label>
            <input type="text" id="allDay" value="111" onclick="myFunction()" readonly>
</div>
Даты выглядят так "27.04.2018"
У меня получается только сделать по событию onclick="myFunction()" используя функцию
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
  function myFunction() {    
    var x = document.getElementById("fromDate").value;
    var x1 = document.getElementById("toDate").value;
    var d = count_diff(x1, x);
    document.getElementById("allDay").value = d;
    }  
/* функция счета дней */
function count_diff(d1, d2){
var date_1 = new Date(parseInt(d1.substr(6, 4), 10), parseInt(d1.substr(3, 2), 10), parseInt(d1.substr(0, 2), 10)); 
var date_2 = new Date(parseInt(d2.substr(6, 4), 10), parseInt(d2.substr(3, 2), 10), parseInt(d2.substr(0, 2), 10)); 
return ((date_1-date_2)/86400000);
}
Что нужно изменить, чтобы в input type="text" id="allDay" без использования onClick данные попадали при вводе второй даты?
Использовать setInterval и проверять каждую секунду? Не будет ли большой нагрузкой для устройства?
Посоветуйте что нибуть?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.04.2018, 14:43
Ответы с готовыми решениями:

Как сделать автосуммирование с DbEdit?
у меня тема моей программы, кинотеатр, я собираюсь сделать покупку билетов но не знаю как сделать чтобы например за 1 билет автоматически...

Одинаковая ширина для полей input text & input password
Никак не получается выровнять ширину двух тектовых полей: input type='text' и input type='password' Помогите, пожалуйста.

Одинаковая ширина для полей input text & input password
Никак не получается выровнять ширину двух тектовых полей: input type='text' и input type='password' Помогите, пожалуйста.

4
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
08.04.2018, 16:38
попробуйте onclick="myFunction()" вставить в <input id="toDate"> вместо onclick="toDate()"
если onclick="toDate()" тоже нужен,то используйте addEventListener
0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
08.04.2018, 17:28  [ТС]
Цитата Сообщение от klopp Посмотреть сообщение
попробуйте onclick="myFunction()" вставить в <input id="toDate"> вместо onclick="toDate()"
onclick="toDate()" был ошибочен. Я его убрал. Вставил myFunction() тоже самое. Можно видео посмотреть. Просто так не вставляется. Даю ссылку
https://www.youtube.com/watch?... e=youtu.be

Цитата Сообщение от klopp Посмотреть сообщение
если onclick="toDate()" тоже нужен,то используйте addEventListener
не совсем понимаю как? Функция работает по клику в теле, а как это будет делаться? Специально тыкать мышкой? Никто же не будет
Мне нужно, чтобы при заполнении обеих дат, в поле "количество дней" была цифра количества. То, что в видео происходит по клику на самом поле ввода.
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
08.04.2018, 19:13
Лучший ответ Сообщение было отмечено pyramida как решение

Решение

Цитата Сообщение от pyramida Посмотреть сообщение
Мне нужно
Я не совсем понял что вы хотите, но если я правильно понял то вы хотите что-то типа такого, если да то я бы сделал примерно так:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<label for="fromDate">Дату въезда:</label>
<select id="fromDate">
    <option value="24.04.2018">24.04.2018</option>
    <option value="23.04.2018">23.04.2018</option>
    <option value="22.04.2018">22.04.2018</option>
</select>
<br>
 
<label for="toDate">Дата выезда:</label>
<select id="toDate">
    <option value="27.04.2018">27.04.2018</option>
    <option value="26.04.2018">26.04.2018</option>
    <option value="25.04.2018">25.04.2018</option>
</select>
<br>
 
<label for="allDay">Количество:</label>
<input id="allDay" readonly>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
onChangee();
 
function onChangee(){
    document.getElementById('toDate').onchange=function(){ myFunction(); }
    document.getElementById('fromDate').onchange=function(){ myFunction(); }
 
    function myFunction() {    
        var x = document.getElementById("fromDate").value;
        var x1 = document.getElementById("toDate").value;
        var d = count_diff(x1, x);
        document.getElementById("allDay").value = d;
    }
    /* функция счета дней */
    function count_diff(d1, d2){
        var date_1 = new Date(parseInt(d1.substr(6, 4), 10), parseInt(d1.substr(3, 2), 10), parseInt(d1.substr(0, 2), 10)); 
        var date_2 = new Date(parseInt(d2.substr(6, 4), 10), parseInt(d2.substr(3, 2), 10), parseInt(d2.substr(0, 2), 10)); 
        return ((date_1-date_2)/86400000);
    }
}
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
html, body{margin: 0px;background-color: #d8d8d8;}
 
select,#allDay{
    width: 20%;
    height: 30px;
    margin: 20px 0px 0px 0px;
    border: 1px;
    border-radius: 10px;
    outline:  none;
    color: #000;
    font-family: Comic Sans MS;
    border: 1px solid #fff;
    letter-spacing: 2px;
    font-size: 20px;
}
Не использовал бы onclick, а использовал бы onchange. Ну и событие бы вешал не в HTML а в JS.
Вот смотрите
1
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
08.04.2018, 19:58  [ТС]
Цитата Сообщение от zlojnaxa Посмотреть сообщение
Не использовал бы onclick, а использовал бы onchange. Ну и событие бы вешал не в HTML а в JS.
Красавчик! :-) В input.toDate я повесил onchange="myFunction()" и все заработало как надо.
Спасибо, настоящий друг! :-)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.04.2018, 19:58
Помогаю со студенческими работами здесь

Получить названия файлов из input file в input text
Как переместить названия файла из input type file в input type text с помощью javascript?

Как реализовать на месте input button просто input?
Приветствую всех. Есть кнопка. Помогите реализовать логику. По нажатию на кнопку , появляется текст , а под ним input. Спасибо...

Как вставить в input с маской от jQuery Masked Input
Здравствуйте. Создал такую маску для ввода карты $('#card').mask(&quot;9999 9999 9999 9999&quot;); Есть ли какие либо...

Погрешность измерений в режиме input capture/pwm input
Делаю квалификационную работу, где нужно измерять параметры шим-сигнала для квадрокоптера, длительность импульса 1-2 мс, период 10 мс....

Как поместить svg картинку в input которая будет менять цвет когда input получает фокус?
Хочу сверстать форму отправки сообщения (изображение прикрепил). Но не получается сделать так, чтобы когда инпут получает фокус менялся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru