Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите со скриптом (https://javascript.ru/forum/dom-window/30913-pomogite-so-skriptom.html)

Atonix 20.08.2012 13:23

Помогите со скриптом
 
Есть такой скрипт :
<head>
<script language="JavaScript">
function getData() {
alert("Вы ввели: " + document.forms[0].textField.value);
}
</script>
</head>
<body>
<form>
<input type=text name=textField size=45>
<input type="button" value="Ответ" onClick="getData()">
</form>
</body>

Мне необходимо сделать так, что если в поле занести правильный ответ, то сразу произойдет переход на страницу(нужную мне). Если ответы будут не верные, то появится просто надпись - ответ не верный. Прошу помочь!

bes 20.08.2012 14:19

<form>
	<input type=text name=textField size=45> 
	<input type="button" value="Ответ">
</form>

<script>
window.onload = function () {
	document.forms[0].children[1].onclick = function () {
		var text = document.forms[0].textField.value;
		if (text == 'ha') {
			location.href = 'http://javascript.ru';
		} else {
			alert('ответ неверный');
		}
	}
}
</script>

Deff 20.08.2012 14:26

Верный Ответ: "Тут верный Ответ"

<script language="JavaScript">
 function getData(a) {
 var aOtwet=a.getAttribute("data");
 var b = document.forms[0].textField.value;
    if (aOtwet==b) {
        alert("Вы ввели: Верный ответ");
        document.forms[0].submit();
    }  else  alert("Вы ввели: Неверный ответ");
 }
 </script>
 </head>
 <body>
 <form action="Ccылка">
 <input type=text name=textField size=45> 
 <input type="button" data="Тут верный Ответ" value="Ответ" onClick="getData(this)">
 </form>

Atonix 20.08.2012 14:43

Цитата:

Сообщение от Deff (Сообщение 199001)
Верный Ответ: "Тут верный Ответ"

<script language="JavaScript">
 function getData(a) {
 var aOtwet=a.getAttribute("data");
 var b = document.forms[0].textField.value;
    if (aOtwet==b) {
        alert("Вы ввели: Верный ответ");
        document.forms[0].submit();
    }  else  alert("Вы ввели: Неверный ответ");
 }
 </script>
 </head>
 <body>
 <form action="Ccылка">
 <input type=text name=textField size=45> 
 <input type="button" data="Тут верный Ответ" value="Ответ" onClick="getData(this)">
 </form>

Deff,
Все супер работает, еще вопрос. можно ли как нибудь защитить верный ответ, чтобы в искодном коде страницы не было написано правильного ответа?

Deff 20.08.2012 14:53

Цитата:

Сообщение от Atonix
можно ли как нибудь защитить верный о

К примеру, - заескейпить строку вставляемую в date="";
alert(escape('Тут верный Ответ').replace(/u/g,'\\u'))



Верный Ответ: "Тут верный Ответ"
<script language="JavaScript">
 function getData(a) {
 var aOtwet=unescape(a.getAttribute("data").split("\\u").join("u"))
 var b = document.forms[0].textField.value;
    if (aOtwet==b) {
        alert("Вы ввели: Верный ответ");
        document.forms[0].submit();
    }  else  alert("Вы ввели: Неверный ответ");
 }
 </script>
 </head>
 <body>
 <form action="Ccылка">
 <input type=text name=textField size=45> 
 <input type="button" data="%\u0422%\u0443%\u0442%20%\u0432%\u0435%\u0440%\u043D%\u044B%\u0439%20%\u041E%\u0442%\u0432%\u0435%\u0442" value="Ответ" onClick="getData(this)">
 </form>

Чуть подправил под escape

Atonix 20.08.2012 15:14

Цитата:

Сообщение от Deff (Сообщение 199010)
Ну заескейпить - к примеру
alert(escape('Тут верный Ответ').replace(/u/g,'\\u'))



Верный Ответ: "Тут верный Ответ"
<script language="JavaScript">
 function getData(a) {
 var aOtwet=unescape(a.getAttribute("data").replace(/\/\/u/g,'u'));
alert(a.getAttribute("data").replace(/\/\//g,''))
 var b = document.forms[0].textField.value;
    if (aOtwet==b) {
        alert("Вы ввели: Верный ответ");
        document.forms[0].submit();
    }  else  alert("Вы ввели: Неверный ответ");
 }
 </script>
 </head>
 <body>
 <form action="Ccылка">
 <input type=text name=textField size=45> 
 <input type="button" data="%\u0422%\u0443%\u0442%20%\u0432%\u0435%\u0440%\u043D%\u044B%\u0439%20%\u041E%\u0442%\u0432%\u0435%\u0442" value="Ответ" onClick="getData(this)">
 </form>


Тут Автотрансформирюца спец символы - но через серв - будет в норме

Можно через encodeURI

Deff,
Все равно в исходном коде он виден. А чтобы вообще не спалить слово,так не возможно сделать? А можно еще ссылку скрыть, чтобы тоже ее в исходном коде не было видно?

Deff 20.08.2012 15:27

Atonix,
Я чуть сменил кодирование

bes 20.08.2012 15:35

на сервер данные отправляйте, там и проверяйте (см ajax или отправка данных в фрейм), на клиенте - гарантий нет

Atonix 20.08.2012 15:40

Цитата:

Сообщение от Deff (Сообщение 199037)
Atonix,
Я чуть сменил кодирование

Deff,
Супер ВООБЩЕ класс. А ссылку можно тоже спрятать?

Deff 20.08.2012 15:58

alert(escape('Тут верный Ответ').replace(/u/g,'\\u'))
alert(escape('Сcылка').replace(/u/g,'\\u'))


Верный Ответ: "Тут верный Ответ"

<script language="JavaScript">
 function getData(a) {
 var aOtwet=unescape(a.getAttribute("data").split("\\u").join("u"))
 alert(aOtwet)
 var z=document.forms[0];
 var b = z.textField.value;
    if (aOtwet==b) {
        alert("Вы ввели: Верный ответ");
        var xz=unescape(z.getAttribute("data").split("\\u").join("u"));
alert("Переходим на==> "+xz);
        z.setAttribute("action",xz);
        document.forms[0].submit();
    }  else  alert("Вы ввели: Неверный ответ");
 }
 </script>
 </head>
 <body>
 <form data="%\u0421c%\u044B%\u043B%\u043A%\u0430" action="псевдоCcылка" >
 <input type=text name=textField size=45> 
 <input type="button" data="%\u0422%\u0443%\u0442%20%\u0432%\u0435%\u0440%\u043D%\u044B%\u0439%20%\u041E%\u0442%\u0432%\u0435%\u0442" value="Ответ" onClick="getData(this)">
 </form>

Atonix 20.08.2012 16:04

Deff,
Спасибо ОГРОМНОЕ

Atonix 21.08.2012 09:47

Цитата:

Сообщение от Deff (Сообщение 199060)
alert(escape('Тут верный Ответ').replace(/u/g,'\\u'))
alert(escape('Сcылка').replace(/u/g,'\\u'))


Верный Ответ: "Тут верный Ответ"

<script language="JavaScript">
 function getData(a) {
 var aOtwet=unescape(a.getAttribute("data").split("\\u").join("u"))
 alert(aOtwet)
 var z=document.forms[0];
 var b = z.textField.value;
    if (aOtwet==b) {
        alert("Вы ввели: Верный ответ");
        var xz=unescape(z.getAttribute("data").split("\\u").join("u"));
alert("Переходим на==> "+xz);
        z.setAttribute("action",xz);
        document.forms[0].submit();
    }  else  alert("Вы ввели: Неверный ответ");
 }
 </script>
 </head>
 <body>
 <form data="%\u0421c%\u044B%\u043B%\u043A%\u0430" action="псевдоCcылка" >
 <input type=text name=textField size=45> 
 <input type="button" data="%\u0422%\u0443%\u0442%20%\u0432%\u0435%\u0440%\u043D%\u044B%\u0439%20%\u041E%\u0442%\u0432%\u0435%\u0442" value="Ответ" onClick="getData(this)">
 </form>

Deff,
Все понял, за исключением одного.
Не много не так скрипт, потому что я ввожу неправильный ответ,а он мне выбивает правильный "Тут верный Ответ",а потом пишет неправильный ответ)))))))))))). Попробуй сам.

Deff 21.08.2012 11:03

Цитата:

Сообщение от Atonix
Не много не так скрипт, потому что я ввожу неправильный ответ,а он мне выбивает правильный "Тут верный Ответ",а потом пишет неправильный ответ)))))))))))). Попробуй сам.

Дык закоментите эту строку //alert(aOtwet) - это тест верного ответа после декодирования

Atonix 21.08.2012 12:00

Цитата:

Сообщение от Deff (Сообщение 199298)
Дык закоментите эту строку //alert(aOtwet) - это тест верного ответа после декодирования

Deff,
а если я ее просто удалю,к примеру - alert(aOtwet)

01 <script language="JavaScript">
02 function getData(a) {
03 var aOtwet=unescape(a.getAttribute("data").split("\\u" ).join("u"))
04
05 var z=document.forms[0];
06 var b = z.textField.value;
07 if (aOtwet==b) {
08 alert("Вы ввели: Верный ответ");
09 var xz=unescape(z.getAttribute("data").split("\\u").jo in("u"));
10 alert("Переходим на==> "+xz);
11 z.setAttribute("action",xz);
12 document.forms[0].submit();
13 } else alert("Вы ввели: Неверный ответ");
14 }
15 </script>
16 </head>
17 <body>
18 <form data="%\u0421c%\u044B%\u043B%\u043A%\u0430" action="псевдоCcылка" >
19 <input type=text name=textField size=45>
20 <input type="button" data="%\u0422%\u0443%\u0442%20%\u0432%\u0435%\u044 0%\u043D%\u044B%\u0439%20%\u041E%\u0442%\u0432%\u0 435%\u0442" value="Ответ" onClick="getData(this)">
21 </form>

Deff 21.08.2012 14:20

Atonix,
Дык - удалите - я предполагал - что после кодирования/вставки и теста Вашего ответа - Вы сами это сделаете

bes 21.08.2012 15:21

Atonix, может просто начать вникать в то, что пишете, прогуглить используемые функции и как их использовать, не


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