Скрипт проверки введенной фразы
Приветствую уважаемые Джедаи JavaScript !
Давно вас не тревожил)) Помогите плиз! :help: Имею несколько блоков, в каждом по 2 формы: 1. <form name="promocodeforsale" class="promoform promofortp1" onsubmit="return false;"> <input class="promocodeforminput" type="text" placeholder="Введите промокод" name="promocode"> <input class="promocodeformbtn btn" type="submit" value="Применить"> </form> 2. <script src="https://securepay.tinkoff.ru/html/payForm/js/tinkoff_v2.js"></script> <form name="TinkoffPayForm" class="tinkoffpayform tinkoffpayform1" onsubmit="pay(this); return false;"> <input class="tinkoffPayRow" type="hidden" name="terminalkey" value="мой код терминала"> <input class="tinkoffPayRow" type="hidden" name="frame" value="true"> <input class="tinkoffPayRow" type="hidden" name="language" value="ru"> <input class="tinkoffPayRow" type="hidden" placeholder="Сумма заказа" value="25000" name="amount" required> <input class="tinkoffPayRow" type="hidden" placeholder="Номер заказа" name="order"> <input class="tinkoffPayRow" type="hidden" placeholder="Описание заказа" name="description"> <input class="tinkoffPayRow" type="hidden" placeholder="ФИО плательщика" name="name"> <input class="tinkoffPayRow" type="email" placeholder="Ваш E-mail" required name="email"> <input class="tinkoffPayRow btn" type="submit" value="Я иду сюда"> </form> Нужно, чтобы после ввода промокода (секретныйпромокод) в форму 1 - если он верный, то, в форме 2 у input name="amount" менялось value="25000" на 20% меньше и всплывал алерт - Промокод активирован... А если не верный то просто всплывал - Алерт - Промокод не верен. Определять формы при том нужно по классам promofortp1 и tinkoffpayform1 соответственно, т.к. на странице еще несколько таких парочек, чтобы я и в них продублировал.... |
Цитата:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <!-- <script src="https://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> --> <style> </style> <script> document.addEventListener('DOMContentLoaded', _ => { const fp1 = document.querySelector('.promofortp1') const fi1 = document.querySelector('.tinkoffpayform1') const o = fi1.querySelector('[name="amount"]') fp1.addEventListener('submit', e => { e.preventDefault() let mes const prm = fp1.querySelector('[name="promocode"]').value // тут проверяется промокод if (true) { let v = +o.value o.value = (v / 100) * 25 mes = 'Промокод активирован' } else { mes = 'Промокод не верен' } alert(mes) }) }) /* $(_ => { }) */ </script> </head> <body> <form name="promocodeforsale" class="promoform promofortp1"> <input class="promocodeforminput" type="text" placeholder="Введите промокод" name="promocode"> <input class="promocodeformbtn btn" type="submit" value="Применить"> </form> <form name="TinkoffPayForm" class="tinkoffpayform tinkoffpayform1" onsubmit="pay(this); return false;"> <input class="tinkoffPayRow" type="hidden" name="terminalkey" value="мой код терминала"> <input class="tinkoffPayRow" type="hidden" name="frame" value="true"> <input class="tinkoffPayRow" type="hidden" name="language" value="ru"> <input class="tinkoffPayRow" type="hidden" placeholder="Сумма заказа" value="25000" name="amount" required> <input class="tinkoffPayRow" type="hidden" placeholder="Номер заказа" name="order"> <input class="tinkoffPayRow" type="hidden" placeholder="Описание заказа" name="description"> <input class="tinkoffPayRow" type="hidden" placeholder="ФИО плательщика" name="name"> <input class="tinkoffPayRow" type="email" placeholder="Ваш E-mail" required name="email"> <input class="tinkoffPayRow btn" type="submit" value="Я иду сюда"> </form> </body> </html> |
Но сейчас ведь он любой промокод верным считает, а как проверить что введено именно это слово ? секретныйпромокод
|
Цитата:
|
Логично - :) А я думал слово не имеет значение =)
"nadepozit" - это слово - без кавычек |
firsmember,
if (true) if(prm == "nadepozit") :( |
А дак, ну я остальной то код не понял )
Получается, в переменную в эту кладется слово) В php я б так и сделал) Благодарю! Всегда выручаете ) UPD.. Кому код тоже пригодится в формуле нужно поправить o.value = (v / 100) * 25 - считает скидку 75% от суммы - соответственно чтобы получить скидку в 20% нужно писать o.value = (v / 100) * 80 |
Ну не должно это на клиенте проверяться. Должен быть запрос к серверу, и ответ от него, верный промокод или нет.
Так кто угодно в отладчике посмотрит, с чем он сравнивается. |
Да, конечно, я это понимаю, это все обсуждалось - и эта вещь для очень узкого круга лиц на 2 часа =) Там ничего страшного не произойдет )
|
Подскажите пожалуйста, а как сделать чтобы повторно нельзя было активировать промокод? А то при каждой активации промокода, сумма уменьшается :(
|
Часовой пояс GMT +3, время: 14:18. |