Здравствуйте. Как сделать так, чтобы в customerContact копировалось значение из поля E-mail?
<form class="form1" action="
https://money.yandex.ru/eshop.xml
" method="post">
<input required name="shopId" value="00000" type="hidden"/>
<input required name="scid" value="00000" type="hidden"/>
<input type='hidden' required name="sum" value="1799" >
<input class="name" type='text' name="customerNumber" placeholder="Ф.И.О" size="64"/>
<input class="emeil" type="email" placeholder="E-mail" name="custEmail" size="64"/>
<input name="ym_merchant_receipt" value='{"customerContact": "+79250000000","taxSystem": 2,"items": [{"quantity": 1,"price": {"amount": 1799.00},"tax": 1,"text": "Яблоки"}]}' type="hidden"/>
</form>
Заранее спасибо
если добавить id="xxx" (иначе обращаться как $("input[name=....])) к искомому полю, то как то так?
зы: в class="emeil" тоже опечатка была
$(".email").keyup(function(){
var data = JSON.parse($("#xxx").val());
data.customerContact = $(this).val();
$("#xxx").val(JSON.stringify(data));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="form1" action="
https://money.yandex.ru/eshop.xml
" method="post">
<input required name="shopId" value="00000" type="hidden"/>
<input required name="scid" value="00000" type="hidden"/>
<input type='hidden' required name="sum" value="1799" >
<input class="name" type='text' name="customerNumber" placeholder="Ф.И.О" size="64"/>
<input class="email" type="email" placeholder="E-mail" name="custEmail" size="64"/>
<input id="xxx" name="ym_merchant_receipt" value='{"customerContact": "+79250000000","taxSystem": 2,"items": [{"quantity": 1,"price": {"amount": 1799.00},"tax": 1,"text": "Яблоки"}]}' type="hidden"/>
</form>
Добавляем обработчик события change на поле email, И там при каждом изменении значения поля взял значение скрытого поля, преобразовал в object, Изменил значения свойства customerContact в объекте, и в конце с ново преобразовал объект в строку и поменял значение скрытого поля.
$(document).ready(function(){
$('.custEmail').on('change',function(){
var obj = JSON.parse($('.ym_merchant_receipt').val());
obj.customerContact = $(this).val();
$('.ym_merchant_receipt').val(JSON.stringify(obj));
console.log($('.ym_merchant_receipt').val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="form1" action="
https://money.yandex.ru/eshop.xml
" method="post">
<input required name="shopId" value="00000" type="hidden"/>
<input required name="scid" value="00000" type="hidden"/>
<input type='hidden' required name="sum" value="1799" >
<input class="name" type='text' name="customerNumber" placeholder="Ф.И.О" size="64"/>
<input class="emeil" type="email" placeholder="E-mail" name="custEmail" size="64"/>
<input name="ym_merchant_receipt" value='{"customerContact": "+79250000000","taxSystem": 2,"items": [{"quantity": 1,"price": {"amount": 1799.00},"tax": 1,"text": "Яблоки"}]}' type="hidden"/>
</form>
Сборка персонального компьютера от Artline: умный выбор для современных пользователей