Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Меняется value в зависимости от выбора (https://javascript.ru/forum/misc/71991-menyaetsya-value-v-zavisimosti-ot-vybora.html)

V.Zver 27.12.2017 03:47

Меняется value в зависимости от выбора
 
Есть yandex форма для оплаты.
Пытаюсь сделать так что бы менялся (name="formcomment" value="Имя платежа") в зависимости от выбранного варианта (Банковской картой или Яндекс.Деньгами)

Допустим человек выбрал оплату Банковской картой, теперь value="Текст1" аналогично с Яндекс.Деньгами value="Текст2".

<form id="request_form" action="https://money.yandex.ru/quickpay/confirm.xml" method="POST" data-form="request" data-type="jsonp" onsubmit="" class="direct request-form js-request-form">
        <input type="hidden" name="quickpay-form" value="small">
        <input type="hidden" name="formcomment" value="Имя платежа">    
        <input type="hidden" name="targets" value="Demo_pay">  
        <input type="hidden" name="sum" value="10" data-type="number">  

         <select name="paymentType" style="width: 100%;">
            <option value="AC">Банковской картой</option>
            <option value="PC">Яндекс.Деньгами</option>
        </select>
     </form>

Dilettante_Pro 27.12.2017 11:13

V.Zver,
А зачем вам скрытый инпут, дублирующий селект?

j0hnik 27.12.2017 17:15

Цитата:

Сообщение от Dilettante_Pro (Сообщение 473858)
V.Zver,
А зачем вам скрытый инпут, дублирующий селект?

надпись на табличке "Новичок на форуме"

document.querySelector('select[name="paymentType"]').onchange=function(){
		document.querySelector('input[name="formcomment"]').value = this.selectedIndex==0?"текст1":"текст2";
	};

Dilettante_Pro 27.12.2017 18:59

j0hnik,
Хорошо, но зачем делать ненужные действия на клиенте, а потом и на сервере?
Учебная программа тоже должна иметь смысл.

V.Zver 28.12.2017 00:15

Как то сложно вы говорите, сорян если что то не понимаю, плохо разбираюсь в js, если можно то подскажите как будет лучше, буду очень признателен. Возможно вы не совсем правильно поняли вопрос, если надо напишу более подробно)

laimas 28.12.2017 09:07

Цитата:

Сообщение от V.Zver
Как то сложно вы говорите, сорян если что то не понимаю, плохо разбираюсь в js

А что сложного для понятия, к тому же конкретно к языку программирования имеющее отношение второстепенное? У вас списком определяется способ оплаты и сервер получит под ключом "paymentType" выбранный способ, либо "AC", либо "PC". Получив одно из этих значений сервер обязан проверить определена ли вообще такая оплата и если определена, то что это такое сервер прекрасно знает и без клиента. То есть слать серверу текст "Банковской картой"/"Яндекс.Деньгами" совсем не требуется, это никчемное занятие.

И это не потому, что так "будет лучше", а потому, что так следует делать. Если сервер этого делать не будет, а тем более в вопросах касающихся денег, то такой магазин/банк обмануть/подставить не составит труда.

Если касательно чисто как лучше, то лучше не оперировать значениями "AC"/"PC", человеку они не нужны, а машине проще цифры проверять.

Dilettante_Pro 28.12.2017 10:20

Вот цитата из АПИ ЯндексДеньги:
Цитата:

Обязательные параметры
receiver string Номер кошелька в Яндекс.Деньгах, на который нужно зачислять деньги отправителей.
quickpay-form string Возможные значения:
shop — для универсальной формы;
small — для кнопки;
donate — для «благотворительной» формы.
targets До 150 символов Назначение платежа.
paymentType string Способ оплаты. Возможные значения:
PC — оплата из кошелька в Яндекс.Деньгах;
AC — с банковской карты;
MC — с баланса мобильного.
sum CurrencyAmount Сумма перевода (спишется с отправителя).

Необязательные параметры
formcomment
string

До 50 символов

Название перевода в истории отправителя (для переводов из кошелька или с привязанной карты). Отображается в кошельке отправителя.

Удобнее всего формировать его из названий магазина и товара. Например: Мой магазин: валенки белые
Так что тип платежа определяется кодами, а в комментарии можно писать что-то другое, конкретизирующее содержание, а не форму платежа.
Или вы просто хотите для себя проверить тип платежа?

Dilettante_Pro 28.12.2017 10:24

laimas,
Цитата:

Сообщение от laimas
Если касательно чисто как лучше, то лучше не оперировать значениями "AC"/"PC", человеку они не нужны, а машине проще цифры проверять.

Эти коды требует АПИ - обращение идет на сервер ЯндексДеньги

laimas 28.12.2017 11:10

Цитата:

Сообщение от Dilettante_Pro
обращение идет на сервер ЯндексДеньги

Да, я не посмотрел этого и подразумевал, что свое, а коли не знает, как пишет, то вряд ли и об индексах что-то знает, какие тогда PC/AC могут быть.

V.Zver 28.12.2017 14:47

Вся проблема была в том что formcomment не может быть больше 200 символов, так как у меня больше яндекс деньги не проходили выдавало ошибку, по этому я хотел сделать что бы при выборе оплаты в formcomment был разный текст, для удобства клиента


Часовой пояс GMT +3, время: 06:13.