Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/88: Рейтинг темы: голосов - 88, средняя оценка - 4.89
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
1

Изменение input в зависимости от значения другого input-а

11.10.2017, 09:21. Показов 17290. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Нужна помощь,я javascript почти не знаю, а есть задача:
в форме input пользователь вводит сумму, и в другом поле сразу рассчитывается эта сумма минус 2% от нее. Может кто помочь?
Я форумы облазил, нашел только как просто рассчитывать 2% от введенной суммы, но она тоже коряво работает
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2017, 09:21
Ответы с готовыми решениями:

Изменение value в зависимости от значения <input>radio
Доброго дня! Есть связанные выпадающие списки, при выборе значения которых выдается...

Изменение содержания элементов в зависимости от значения input
Доброго времени суток! По своей безграмотности пришёл к Вам за помощью. Помогите, пожалуйста,...

Выбор Select в зависимости от значения Input
Добрый день! Помогите найти ошибки в скрипте: var a =...

В зависимости от выбранного значения select отображать input формы
Здравствуйте! Подскажите пожалуйста, как сделать так, чтобы input формы появлялся, только когда в...

19
737 / 542 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
11.10.2017, 09:51 2
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>2%</title>
    <script src="script.js" defer></script>
</head>
<body>
     <p>
        Введите число <input type="text" name="" id="inp">
        <button onclick="calc()">Calculate</button>
    </p>
    <p id="out"></p>
</body>
</html>
Javascript
1
2
3
4
5
6
7
8
9
10
11
function calc(){
    var inp = document.getElementById('inp').value;
    var out = document.getElementById('out');
    var res = Number(inp);
    if(isNaN(res)){
        out.innerHTML = 'Неправильный ввод данных!';
        return;
    }
    res -= res / 100 * 2;
    out.innerHTML = res;
}
0
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
11.10.2017, 12:33  [ТС] 3
Спасибо! А как сделать, чтобы без кнопки рассчитывало, сразу в другой инпут? Как то с использованием onekeydown?

Добавлено через 2 часа 24 минуты
Никто не знает как сделать?(
0
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
11.10.2017, 12:49 4
Цитата Сообщение от endangered28 Посмотреть сообщение
Никто не знает как сделать?(
Где вы такие задания получаете?
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <input id="x" type="number" value="0">
    <input id="y" type="text" value="0" disabled>
    <script type="text/javascript">
      x.addEventListener('input', function () {
        y.value = (this.value * .98).toFixed(2);
      });
    </script>
  </body>
</html>
1
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
11.10.2017, 14:35  [ТС] 5
Цитата Сообщение от j2FunOnly Посмотреть сообщение
Где вы такие задания получаете?
На работе)

Добавлено через 1 час 42 минуты
А input с атрибутом disabled не может обрабатываться в другом файле? У меня просто в обработчике реквестится $sum = intval($_REQUEST['имя инпута']); , а с disabled не работает
1
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
11.10.2017, 14:59 6
Поле ввода с атрибутом disabled не является корректным и не обрабатывается формой при отправке. Как вариант поставить атрибут readonly, либо дублировать полем с типом hidden и таким же именем. ИМХО не стоит полагаться на эти данные, а рассчитывать их на сервере.
0
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
17.10.2017, 12:13  [ТС] 7
Код в IE 11 не работает, есть какие нибудь аналоги? или мб как нибудь можно по другому сделать?
0
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
17.10.2017, 12:57 8
Цитата Сообщение от endangered28 Посмотреть сообщение
Код в IE 11 не работает
Какой код?
0
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
18.10.2017, 12:51  [ТС] 9
Javascript
1
2
3
4
5
<script type="text/javascript">
      x.addEventListener('input', function () {
        y.value = (this.value * .98).toFixed(2);
      });
    </script>
Не рассчитывает сумму с учетом 2%комиссии

Добавлено через 23 часа 50 минут
И все-таки, можно как нибудь сделать, чтоб в IE тоже работало?)
0
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
18.10.2017, 13:16 10
Так а что не работает-то?

Мой пример прекрасно себя чувствует в IE 11.

А этот кусок гокода нигде работать не будет.
0
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
18.10.2017, 13:18  [ТС] 11
Всмысле, так это ж Ваш код?
0
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
18.10.2017, 13:27 12
Это только кусок от моего примера и сам по себе он работать не будет. Весь пример работает в IE 11.

Это раньше были ограничения на событие input - первое что подсказал мой знакомый телепат, но увы его способности на этом заканчиваются.

Поэтому дайте минимально полную +воспроизводимую+ проблему (разметка, js, стили, библиотеки подключаемые, ошибки в консоли - вот это вот всё) отображающий вашу проблему или ссылку на jsfiddle.net с кодом который не работает только в IE. Тогда и посмотрим что там может не работать.
0
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
18.10.2017, 13:32  [ТС] 13
Я сейчас сделал отдельно файл c этим кодом
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <input id="x" type="number" value="0">
    <input id="y" type="text" value="0" disabled>
    <script type="text/javascript">
      x.addEventListener('input', function () {
        y.value = (this.value * .98).toFixed(2);
      });
    </script>
  </body>
</html>
и открыл в IE 11(только что скачал последнюю версию) - во втором поле ничего не меняется
0
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
18.10.2017, 13:43 14
В консоли что-то есть?
0
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
18.10.2017, 13:44  [ТС] 15
Цитата Сообщение от j2FunOnly Посмотреть сообщение
В консоли что-то есть?
нет, смотрел уже, пусто
0
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
18.10.2017, 13:48 16
Тут заработает https://jsfiddle.net/eftutnu0/
Вы открываете файл с жесткого диска - IE будет блокировать выполнение JS (по умолчанию)
Изменение input в зависимости от значения другого input-а
- видели такое у себя в браузере?
1
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
18.10.2017, 13:52  [ТС] 17
Цитата Сообщение от j2FunOnly Посмотреть сообщение
Вы открываете файл с жесткого диска - IE будет блокировать выполнение JS (по умолчанию)
Так в чем дело было, я видимо автоматом закрывал эти оповещения. Странно, что другие js скрипты работают, но это уже не суть. Спасибо,что разрешили проблему!)
0
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
18.10.2017, 13:57 18
Вот видите какие нюансы бывают, вплоть до того как вы файлы открываете А просите попытаться решить проблемы приведя только кусочек кода (и то по-требованию).
0
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
18.10.2017, 14:32  [ТС] 19
Блин, отключил в IE блокировку ActiveX и других элементов, но все равно на моей странице не работает, может быть дело в подключении js на странице? Вот овнокод index.php. Может в подключении js где то косяк? хотя в других браузерах работает же
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<?
define('CHECK_OFERTA', 'HAS_AM');
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("iblock"); 
\Bitrix\Main\Loader::includeModule('iblock');
?>
<?
$arAgency = \Litegroup\CatalogStoreProduct::getAgencyData();
$APPLICATION->SetTitle("Пополнение лицевого счёта в " . $arAgency['NAME']);
//$file = $_SERVER['DOCUMENT_ROOT']."/upload/logs/".md5('Errors').".log";
?>
<style>
 
 
input:focus {
        -webkit-box-shadow: 0px 0px 8px #007eff;
        -moz-box-shadow: 0px 0px 8px #007eff;
        box-shadow: 0px 0px 8px #007eff;
}
 
input.date_err {
    box-shadow: 0 0 8px #ff0000;
}
 
input.date_ok {
    box-shadow: 0 0 8px #3caa3c;
}
 
.error{
  color: red;
}
</style>
<link rel="stylesheet" type="text/css" href="styles.css">
<link rel="stylesheet" type="text/css" href="jquery-ui.css">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript" src="jquery.maskedinput-1.2.2.js"></script>
<script type="text/javascript" src="jquery-ui-1.10.3.custom.min.js"></script>
<script type="text/javascript" src="jquery.ui.datepicker-ru-1251.js"></script>
 
<script language="JavaScript">
    function ValidateDate(date_fl){
        str=date_fl.value;
        function TstDate(){
            str2=str.split(".");
            if(str2.length!=3){return false;}
            //Границы разрешенного периода
            if((parseInt(str2[2], 10)<=1920)||(parseInt(str2[2], 10)>=2020)) {return false;}
            str2=str2[2] +'-'+ str2[1]+'-'+ str2[0];
            if(new Date(str2)=='Invalid Date'){return false;}
            return str;
        }
            var S=TstDate()
        if(S)
        {
            date_fl.className='date_ok';
            document.getElementById("submit").disabled = false;
            document.getElementById("date_error").hidden = true;
        }
        else
        {
            date_fl.className='date_err';
            document.getElementById("submit").disabled = true;
            document.getElementById("date_error").hidden = false;           
        }
    }
    
    jQuery(function($){
        $("#birth_date").mask("99.99.9999");
    });
</script>
 
 
<script type="text/javascript">
    $(document).ready(function() {
        $('.btn_buy.popdef').click(function(event) {
            var datForm = $('#FormActionPayLC').serializeArray();
            console.log(datForm);
           $.ajax({
               url: '/money-transfer/payment.php',
               type: 'post',
               dataType: 'json',
               data: datForm,
               success: function(result) {
                 //$('#form_result').html(result);
                 console.log(result);
                 if(result.status == 'OK'){
                   // alert ('Перейти к оплате');
                    window.location.replace(result.url);
                    
                 }else if(result.status == 'error'){
                    //alert(result.message);
                    $("#error_p").html(result.message);
                    $("#win1").show();
                    $('.close').click(function(){
                        $("#win1").hide();
                    });
            
                 }
 
               }
           });
           return false;
        });
    });
</script>
 
 
<div class="error" style="display: none; margin: auto 0;width: 100px;height: 100px;background: grey;">
    <div class="error2"></div>
    <button id="button">Ок</button>
</div>
 
 
 
<div class="dm-overlay" id="win1">
    <div class="dm-table">
        <div class="dm-cell">
            <div class="dm-modal">
                <a href="#close" class="close" style="text-decoration:none !important;"></a>
                <strong id="h1_error" style="text-align: center; font-size: 20px">Ошибка</strong><br>
                <!--<div class="pl-left">
                </div>-->
                <span id="error_p" style="font-size: 14px;">Ошибка пополнения</span>
            </div>
        </div>
    </div>
</div>
 
<!--<p><a href="#win1" class="btn">Открыть окно 1</a></p>-->
 
 
 
<div class="content-form">
        <div class="fields">
            <form id="FormActionPayLC" name="form" method="POST" target="" action="/money-transfer/payment.php">
                <h1>Данные получателя:</h1>
                <div class="field">
                    <label class="field-title">Фамилия получателя</label>
                    <div class="form-input"><input type="text" name="last_name_recipient" maxlength="50" value="" class="input-field"></div>
                </div>
                <div class="field">
                    <label class="field-title">Имя получателя</label>
                    <div class="form-input"><input type="text" name="name_recipient" maxlength="50" value="" class="input-field"></div>
                </div>
                <div class="field">
                    <label class="field-title">Отчество получателя</label>
                    <div class="form-input"><input type="text" name="middle_name_recipient" maxlength="50" value="" class="input-field"></div>
                </div>
                <div class="field">
                    <label class="field-title">Дата рождения (день, месяц, год)</label>
                    <div class="form-input"><input type="text" name="birth_date" id="birth_date" maxlength="50" value="" class="input-field" onkeyup="ValidateDate(this)" onchange="ValidateDate(this)" value="" size="40"></div>
                </div>
                <p id="date_error" hidden="hidden" style="color: red;">Введите правильную дату</p>
                <br>
                <h2>Данные плательщика:</h2>
                <div class="field">
                    <label class="field-title">Ваша фамилия</label>
                    <div class="form-input"><input type="text" name="name" maxlength="50" value="" class="input-field"></div>
                </div>
                <div class="field">
                    <label class="field-title">Ваше имя</label>
                    <div class="form-input"><input type="text" name="last_name" maxlength="50" value="" class="input-field"></div>
                </div>
                <div class="field">
                    <label class="field-title">Ваше отчество</label>
                    <div class="form-input"><input type="text" name="middle_name" maxlength="50" value="" class="input-field"></div>
                </div>
                <br>
                <h2>Данные платежа:</h2>
                <div class="field">
                    <label class="field-title">Сумма платежа:</label>
                     </br><input id="x" type="number" name="amount" value="0">
                    <br><br> <label class="field-title">Сумма к зачислению:</label>
                          </br><input id="y" type="text" value=""  >
                         <script type="text/javascript">
                            x.addEventListener('input', function () {
                                y.value = (this.value * .98);
                            });
                        </script>
 
                    <!--<div class="form-input"><input type="text" name="amount" maxlength="50" value="" class="input-field"></div>-->
 
                    </br><small style="font-size: 10px;">Сервисный сбор – 2%</small>
                </div>
 
                <div id="message_error"></div>
                <div class="field field-button">
                    <button type="submit" name="submit" id="submit" class="btn_buy popdef" disabled="disabled">Перейти к оплате</button>
                </div>
            </form>
 
            <?/*<iframe class="iframe" src="https://money.yandex.ru/fastpay/form/724f71f496b144049f367946355e5476" width="500" height="417" style="border: 1px solid #e8e8e8;"></iframe>*/?>
        </div>
    </div>
 
<script type="text/javascript">
$(document).ready(function(){
  // ---- Календарь -----
  $('#birth_date').datepicker();
  // ---- Календарь -----
});
</script>
 
<? echo $arAgency["~PROPERTY_FSIN_REQ_VALUE"]["TEXT"];?>
 
 
 
<? require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php"); ?>
0
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
18.10.2017, 15:10 20
Эм... ну не надо же копипастить с интернетов всякое... плюс у вас есть jQuery
PHP/HTML
1
2
3
4
5
6
7
<script type="text/javascript">
  var $y = $('input#y');
  $('input#x').bind('input', function () {
    var wTax = (this.value * 0.98).toFixed(2);
    $y.val(wTax);
  });
</script>
0
18.10.2017, 15:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2017, 15:10
Помогаю со студенческими работами здесь

Как вывести input radio в зависимости от выше выбранного input radio
Нужно сделать как бы вывод на странице двух input radion. Выбор пола. Мужчина и Женщина. Если я...

Изменение значения value элемента input
Нужна помощь. Есть запрос в БД через PHP, на выборку данных которые совпадают с введенным в поле...

Изменение ссылки(добавление/обновление значения из input), при помощи jquery
Нужно при помощи jquery в конец ссылки добавлять значение, введенное в инпуте. Я сделал таким...

Изменение цвета поля Input при наборе текста (именно при наборе,а не при установке курсора мышки в поле Input)
Добрый день всем! Подскажите пожалуйста код, позволяющий сделать следующие действия. Есть поле...

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru