Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.09.2022, 13:49
Аспирант
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 95

Скрипт проверки введенной фразы
Приветствую уважаемые Джедаи JavaScript !

Давно вас не тревожил)) Помогите плиз!

Имею несколько блоков, в каждом по 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 соответственно, т.к. на странице еще несколько таких парочек, чтобы я и в них продублировал....
Ответить с цитированием
  #2 (permalink)  
Старый 20.09.2022, 15:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,973

Сообщение от firsmember
Нужно, чтобы после ввода промокода (секретныйпромокод) в форму 1 - если он верный, то, в форме 2 у input name="amount" менялось value="25000" на 20% меньше и всплывал алерт - Промокод активирован... А если не верный то просто всплывал - Алерт - Промокод не верен.
Как-то так...
<!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>
Ответить с цитированием
  #3 (permalink)  
Старый 20.09.2022, 16:20
Аспирант
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 95

Но сейчас ведь он любой промокод верным считает, а как проверить что введено именно это слово ? секретныйпромокод
Ответить с цитированием
  #4 (permalink)  
Старый 20.09.2022, 16:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,973

Сообщение от firsmember
а как проверить что введено именно это слово ? секретныйпромокод
Так я твоего секрета не знаю...
Ответить с цитированием
  #5 (permalink)  
Старый 20.09.2022, 18:27
Аспирант
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 95

Логично - А я думал слово не имеет значение =)
"nadepozit" - это слово - без кавычек
Ответить с цитированием
  #6 (permalink)  
Старый 20.09.2022, 18:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 32,433

firsmember,
if (true)

if(prm == "nadepozit")

Ответить с цитированием
  #7 (permalink)  
Старый 20.09.2022, 19:27
Аспирант
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 95

А дак, ну я остальной то код не понял )
Получается, в переменную в эту кладется слово)
В php я б так и сделал)

Благодарю! Всегда выручаете )

UPD..

Кому код тоже пригодится в формуле нужно поправить o.value = (v / 100) * 25
- считает скидку 75% от суммы - соответственно чтобы получить скидку в 20% нужно писать o.value = (v / 100) * 80

Последний раз редактировалось firsmember, 20.09.2022 в 19:35.
Ответить с цитированием
  #8 (permalink)  
Старый 20.09.2022, 19:57
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 1,917

Ну не должно это на клиенте проверяться. Должен быть запрос к серверу, и ответ от него, верный промокод или нет.
Так кто угодно в отладчике посмотрит, с чем он сравнивается.
Ответить с цитированием
  #9 (permalink)  
Старый 20.09.2022, 20:05
Аспирант
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 95

Да, конечно, я это понимаю, это все обсуждалось - и эта вещь для очень узкого круга лиц на 2 часа =) Там ничего страшного не произойдет )
Ответить с цитированием
  #10 (permalink)  
Старый 21.09.2022, 13:52
Аспирант
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 95

Подскажите пожалуйста, а как сделать чтобы повторно нельзя было активировать промокод? А то при каждой активации промокода, сумма уменьшается
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт в скрипт :) Sakyra Общие вопросы Javascript 6 22.05.2013 09:58
Помогите вставить скрипт на страницу alexsio Работа 7 22.04.2013 18:19
Не работает скрипт :( VladimirV Javascript под браузер 5 21.12.2010 14:26
А как зделать скрипт, чтобы например скрипт 1 заменялся скриптом 2? yura371 Общие вопросы Javascript 3 06.01.2009 22:40
добавление окошка в скрипт подсчета слов Гость Общие вопросы Javascript 10 11.03.2008 17:07