Замена значений атрибута value тега input

142
18 апреля 2019, 00:30

разбираюсь с api интернет-эквайринга, для успешной отправки формы необходимо передать параметр receipt, у которого есть ряд обязательных значений. Выглядит он подобным образом:

<input class="PayRow" type="hidden" name="receipt" value='{"Email": "test@test.ru","Items": [ {"Name": "Наименование товара 1","Price":10000,"Quantity": 1.00,"Amount": 10000 }]}'>

Значения Email и Items являются обязательными, при этом у Items обязательны Name, Price и Amount.

Email клиента я получаю в поле ввода перед оплатой, в другом поле вычисляется Amount, то есть эти два значения у меня есть. Подскажите, пожалуйста - как можно заменить "test@test.ru" на e-mail клиента, а также в "Price":10000 и "Amount": 10000цифры на значение Amount (Price и Amount всегда будут равны, так как Quantity будет 1) автоматически на те, что у меня имеются.

Amount : <input class="PayRow" type="text" placeholder="Amount" name="paySum" id="priceId">
Email : <input class="PayRow" type="text" placeholder="E-mail" name="payEmail">
Answer 1

Проще всего в момент отправки формировать содержимое value, подставляя в нужные места значения полей:

$('button').click(function(){ 
  let receipt = '{"Email": "'+$('#email').val()+'", "Items": [{"Name": "Наименование товара 1","Price": '+Number($('#priceId').val())+',"Quantity": 1.00,"Amount": '+Number($('#priceId').val())+'}]}'; 
   
  $('[name="receipt"]').val(receipt); 
   
  console.log($('[name="receipt"]').val()); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
Amount : <input class="PayRow" type="text" placeholder="Amount" name="paySum" id="priceId"><br /><br /> 
 
Email : <input class="PayRow" type="text" placeholder="E-mail" name="payEmail" id="email"><br /><br /> 
 
<input class="PayRow" type="hidden" name="receipt" value=""> 
<button>Отправить</button>

Answer 2
const receipt = {
        "Email": document.getElementById('mail').value,
        "Items": [{ 
            "Name": document.getElementById('name').value,
            "Price":10000,
            "Quantity": 1.00,
            "Amount": 10000 
        }]
    }
    var saveData = $.ajax({
        type: "POST",
        url: "someaction.do/controller/action",
        data: JSON.stringify(receipt),
        dataType: "json",
        success: function(resultData){
            alert("Save Complete");
        }
    });
READ ALSO
mariadb - отсутствует /usr/share/mariadb/russian

mariadb - отсутствует /usr/share/mariadb/russian

В GNU Linux установил mariadb-server в lxc контейнере Fedora 28 amd64 командой dnf install mariadb-server, перед этим установил glibc-langpack-ru

154
PostMapping в программе, Java, Spring

PostMapping в программе, Java, Spring

Есть у меня две формы c post

152
Слайд калькулятор

Слайд калькулятор

Есть два input и два popup окна

209