Скрипт проверки введенной фразы
Приветствую уважаемые Джедаи 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, время: 15:16. |