0

Есть код:

    <div>
        <form action="startpage.html" method="post" autocomplete="off">
        <input type="checkbox" id="subjNumCheckbox"/>Количество предметов
        <input type="text" name="dealAmount" id="dealAmount" label="Максимальная сумма договора"/>
        <input type="submit" id="submitBtn">
        </form>
    </div>
<script>
    var subjNum = '// КОЛИЧЕСТВО ПРЕДМЕТОВ ЛИЗИНГА\n' +
                    '\tЕсли СтрокаПредмет.КалькуляторЛизинга.СуммаДоговора <= ' + subjNumField + 'тогда\n' +
                    '\t\tЕсли КоличествоПредметов > 2 тогда\n' +
                    '\t\t\tРезультат = Ложь;\n'
$(document).ready(function() {
        $('#submit').click(function(){
            if ($("#subjNumCheckbox").is(':checked') == true) {
                  code_text += subjNum;
                  $('textarea').text(code_text);
            }
       });
       $('#submitBtn').click(function () {
                subjNumField = $('#dealAmount').val();
       })
});
</script>

Как добавить переменную subjNumField к строке?

  • Вот так выглядит моя html страница https://imgur.com/xszXKzg . При выборе checkbox'а появляется 1) subjNumField. Туда записывается число. Отправляю это через 2) submitBtn. Снова выбираю этот checkbox. Нажимаю на 3), и в 4) должен появиться новый текст subjNum – Офисный_рабочий Jul 24 '19 at 12:30
  • сюда в вопрос добавьте фрагменты страницы с вашим скриптом. а то не у всех есть доступ к вашей ссылке и не понятно, что такое 1, 2, 3 и 4 (некие действия пользователя на странице?) – Konst Jul 24 '19 at 12:34
  • Код будет слишком длинным. Буду прикреплять по-фрагментно – Офисный_рабочий Jul 24 '19 at 12:39
  • в исходный запрос вставьте – Konst Jul 24 '19 at 12:42
  • Я так думаю, проблема в асинхронности. – Офисный_рабочий Jul 24 '19 at 13:03
  • у вас проблема в архитектуре решения, вы отправляете форму по клику на кнопку, все данные стираются, если вам нужно хранение клиентских переменных, то нужно использовать куки или локальное хранилище – Konst Jul 24 '19 at 13:14
  • @Konst, спасибо вам большое! Попробую копать в ту сторону – Офисный_рабочий Jul 24 '19 at 13:15

2 Answers2

0

Объявление переменных по стандарту ES6:

let subjNum = '';
let subjNumField = '';

Добавить можно так (конкатинация):

subjNum = subjNum + subjNumField

В вашем случае создадим функцию, и вызовем её по наступлению события.

Ваш пример:

let subjNum = '';

function addText(text){ return '// КОЛИЧЕСТВО ПРЕДМЕТОВ ЛИЗИНГА\n' + '\tЕсли СтрокаПредмет.КалькуляторЛизинга.СуммаДоговора <= ' + text + 'тогда\n' + '\t\tЕсли КоличествоПредметов > 2 тогда\n' + '\t\t\tРезультат = Ложь;\n'; } $(document).ready(function() { $('#submitBtn').click(function() { subjNum = addText($('#dealAmount').val());

}) })

doox911
  • 3,818
  • "subjNum = subjNum + subjNumField" разве это вставит значение subjNumField именно в то место, которое мне нужно? Извините, если вопрос глупый, но я совсем не javascript-программист – Офисный_рабочий Jul 24 '19 at 12:06
  • @Офисный_рабочий Подправил. – doox911 Jul 24 '19 at 12:19
0
    $(document).ready(function() {
        $('#submitBtn').click(function () {
            alert(getAlert($('#dealAmount').val()));
        });
    });
function getAlert(deal) {
    var s = (deal == null || deal == undefined) ? '': deal.toString();
    return '// КОЛИЧЕСТВО ПРЕДМЕТОВ ЛИЗИНГА\n' +
            '\tЕсли СтрокаПредмет.КалькуляторЛизинга.СуммаДоговора <= ' + s + ' тогда\n' +
            '\t\tЕсли КоличествоПредметов > 2 тогда\n' +
            '\t\t\tРезультат = Ложь;\n';
}
  • alert только для демонстрации
  • вызывайте getAlert() в том месте, где вам нужно получить новое сообщение
Konst
  • 1,938
  • с alert'ом это срабатывает, но мне нужно, чтобы потом это можно было записать в другое текстовое поле (если убрать alert, в другом текстовом поле у меня выходит #deal# вместо значения) – Офисный_рабочий Jul 24 '19 at 12:27
  • полный код страницы покажите в своем вопросе, тогда сможем помочь – Konst Jul 24 '19 at 12:27