Задать вопрос
@jalilko05

Как сделать, чтобы при клике на кнопку появлялось поле ввода?

Как сделать, чтобы при клике на кнопку, под ней появлялся input, чтобы ввести туда определённую сумму? И ещё проблема в том что, если нажать на radio и после на кнопку, то active на радио не пропадает, просто на всех radio стоит значение и не хотелось бы, чтобы значение из radio складывались при отправке.

const Pay = ()=>{ 
    return(
        <>
             <div className={styles.wrapper}>
          <div className={styles.container}>
         
          <form action="https://app.0xProcessing.com/Payment" method="post">
                          <input type="hidden" name="test" value="true" />
                          <input type="email" name="email" placeholder='Email'/>

                          <div className={styles.choice}>
                             <label><input type="radio" name="amountusd" value={5} /><span>5$</span></label>
                             <label><input type="radio" name="amountusd" value={10}/><span>10$</span></label>
                             <label><input type="radio" name="amountusd" value={15}/><span>15$</span></label>
                             <button>Другая сумма</button>
                          </div>
                    

                          <input type="number" name="amountusd"  placeholder='Другая сумма' />
                          <input type="text" name="currency" placeholder='Валюта' />
                          <input type="hidden" name="ShopId" value="6QsQHcQ6bX" />
                          <input type="hidden" name="ClientId" value={payKey.data} />
                          <input type="hidden" name='SuccessUrl' value={`https://next-js-web-sandy.vercel.app/success/`}/>
                          <input type="hidden" name='AutoReturn' value="true" />
                          <button type="submit">Send</button>
          </form>       
          </div>
         </div>
        </>
    )

}

export default Pay
  • Вопрос задан
  • 606 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
const amounts = [ 5, 10, 15 ];
const [ amount, setAmount ] = useState(null);
const [ isCustomAmount, setIsCustomAmount ] = useState(false);

{amounts.map(n => (
  <label>
    <input
      type="radio"
      disabled={isCustomAmount}
      checked={amount === n && !isCustomAmount}
      onChange={() => setAmount(n)}
    />
    ${n}
  </label>
))}
<label>
  <input
    type="checkbox"
    checked={isCustomAmount}
    onChange={e => (setAmount(null), setIsCustomAmount(e.target.checked))}
  />
  Другая сумма
</label>
{isCustomAmount && <input value={amount} onChange={e => setAmount(+e.target.value)} />}
<input type="hidden" name="amountusd" value={amount} />
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы